专属集群MyBase的PostgreSQL实例支持自主可控的运维,包括安装软件、数据库超级账号登录、创建可外部登录的数据库超级账号、查看数据库实时日志、修改数据库参数等,本文介绍了自主运维的具体操作方法。
背景信息
专属集群MyBase以集群形式可提供资源调度、主机管理、实例管理。具有云资源独享、支持资源超分配,自主可运维、开放部分数据库和OS权限等特点,为企业级用户定制了优化的解决方案,更多信息,请参见基于MyBase构建自主可控数据库和高弹性应用实践。
注意事项
专属集群MyBase是开放式的数据库服务,您拥有自主运维权限,但自主运维同时也会带来风险,在使用权限时请慎重,操作不当可能导致系统故障。
登录数据库
- 登录主机。具体操作,请参见通过Webshell访问主机。
- 使用如下命令安装PostgreSQL客户端。
sudo yum install postgresql
说明
- 安装软件需要添加yum或rpm权限,apsaradb组的用户可以root身份执行sudo yum,关于主机权限的具体信息,请参见主机权限说明。
- 当yum仓库中的PostgreSQL版本不是最新或不是预期版本时,您可以通过如下方法安装:
- 使用lrzsz工具从本地上传软件包后安装。
- 在ECS实例中下载软件包后,在MyBase主机上使用scp将ECS上的软件包拷贝到MyBase主机进行编译安装。
- 使用超级账号登录数据库。
- 进入数据库数据目录。
cd /disk17659373/pgsql/17659373/data/
说明 数据库数据目录示例:/disk17659373/pgsql/17659373/data/。其中17659373为系统随机生成,使用时请进入系统根目录查看实际路径。
- 使用如下命令以超级账号登录数据库。
psql -h `pwd` -p 3002 -U aurora postgres
- 登录数据库后,您可以根据业务需求对数据库进行自主运维,可执行的操作有:
创建可外部连接的数据库超级账号
由于aurora为pg_hba.conf中配置的内部账号,仅支持本地登录,当您需要在应用程序内通过数据库连接地址访问数据库时,专属集群MyBase的PostgreSQL实例支持创建外部连接数据库的超级账号。
- 查询当前账号。
预期结果:
List of roles
Role name | Attributes | Member of | Description
---------------------------+---------------------------------------------------+--------------------------------------------------------------+-------------
aurora | Superuser, Replication | {} |
pg45667359 | Superuser, Create role, Create DB, Replication | {} |
pg_execute_server_program | Cannot login | {} |
pg_monitor | Cannot login | {pg_read_all_settings,pg_read_all_stats,pg_stat_scan_tables} |
pg_rds_superuser | Create role, Create DB, Cannot login, Replication | {} |
pg_read_all_settings | Cannot login | {} |
pg_read_all_stats | Cannot login | {} |
pg_read_server_files | Cannot login | {} |
pg_signal_backend | Cannot login | {} |
pg_stat_scan_tables | Cannot login | {} |
pg_write_server_files | Cannot login | {} |
replicator | Superuser, Replication | {} |
- 使用如下命令创建一个超级账号。
create role new_dba encrypted password 'helloWorld#YekMyBase' superuser login;
说明 本示例中new_dba为新创建用户的用户名,helloWorld#YekMyBase为新创建用户的密码。此处用户名密码仅为示例,为保证数据安全,请勿使用本示例中的用户名密码,请您根据实际情况创建。
- 再次执行如下命令验证账号是否创建成功。
预期结果:
List of roles
Role name | Attributes | Member of | Description
---------------------------+---------------------------------------------------+--------------------------------------------------------------+-------------
aurora | Superuser, Replication | {} |
new_dba | Superuser | {} |
pg45667359 | Superuser, Create role, Create DB, Replication | {} |
pg_execute_server_program | Cannot login | {} |
pg_monitor | Cannot login | {pg_read_all_settings,pg_read_all_stats,pg_stat_scan_tables} |
pg_rds_superuser | Create role, Create DB, Cannot login, Replication | {} |
pg_read_all_settings | Cannot login | {} |
pg_read_all_stats | Cannot login | {} |
pg_read_server_files | Cannot login | {} |
pg_signal_backend | Cannot login | {} |
pg_stat_scan_tables | Cannot login | {} |
pg_write_server_files | Cannot login | {} |
replicator | Superuser, Replication | {} |
查看实时日志
专属集群MyBase的PostgreSQL实例支持查看实时日志,具体步骤如下。
- 进入日志存放路径。
cd /disk17659373/pgsql/17659373/data/log
说明 数据库日志存放路径示例:/disk17659373/pgsql/17659373/data/log。其中17659373为系统随机生成,使用时请进入系统根目录查看实际路径。
- 查看目录下的日志文件。
预期结果:
-rw-r----- 1 pgsql apsaradb 111161 Apr 7 17:44 postgresql-2021-04-07_172939.csv
-rw-r----- 1 pgsql apsaradb 209440 Apr 7 17:44 postgresql-2021-04-07_172939.log
- 使用如下命令查看日志文件。
less postgresql-2021-04-07_172939.csv
修改任意参数
专属集群MyBase的PostgreSQL实例支持修改任意参数,修改方法如下:
- 使用
alter system
命令修改参数。
以修改
max_connections参数为例,将参数值修改为10000:
alter system set max_connections=10000;
注意
- 修改数据库参数属于高风险操作,请谨慎修改,操作不当可能导致系统故障。
- 您必须分别登录主库和备库所在主机修改参数,否则会导致专属集群MyBase的PostgreSQL实例主从间切换后参数不一致的情况,甚至引发故障。
- 部分参数要求备库必须大于或等于主库。
- 部分参数和系统资源相关,如果修改不合理可能导致数据库无法启动,例如semphor相关的参数。
- 部分参数修改后不需要重启实例,通常5分钟左右可以生效;部分参数修改后需要重启实例才生效,具体请参见控制台上参数设置页面中,可修改参数页签内的是否重启列。
- 编辑postgresql.conf和postgresql.auto.conf文件修改参数。
注意 直接编辑配置文件修改参数属于高风险操作,请修改前务必对原配置文件进行备份,以便在因操作不当而导致系统故障时,及时进行恢复。