一、 准备工作
瀚高数据库采用内置的流复制功能实现数据库的容灾,要求主备端的操作系统及硬件架构保持一致,防止主备服务器因操作系统或硬件环境不同造成同步异常。网络方面建议将流复制规划到单独的网络,即主备节点间需要单独的网络进行数据同步,避免数据同步与客户端访问之间造成影响。备节点的数据库服务会一直开启,可以作为只读节点使用。
二、 数据库安装
1) 数据库安装
操作系统、硬件要求及参数配置,祥见《Highgo Database安全版安装指导手册(最佳实践)》,4.3.4版本的安装过程详见《Highgo Database安全版安装指导手册(最佳实践)》,4.3.4.2及以后版本的安装参照以下安装过程。
[root@hgcluster1 highgo]# rpm -ivh hgdb4.3.4.4-see-nkyl7-loongson-64-20190626.rpm |
2) 存储路径
数据库安装完成后,会自动初始化数据库,存放在数据库的安装目录下,即/opt/HighGoDB-4.3.4.4.4下,通常该空间较小,需要将data目录迁移到存储或空间足够的目录下,然后使用软连接指向迁移后的路径,例如,将data目录迁移至/highgo/目录下,操作过程如下:
mv /opt/HighGoDB-4.3.4.4.4/data /highgo/ ln -s /highgo/data /opt/HighGoDB-4.3.4.4.4/data |
三、 配置主节点数据库参数
1) 主节点配置数据库参数
以下命令使用sysdba用户登录执行
[highgo@hgcluster1 highgo]#psql -U sysdba highgo psql (4.3.4.4) Type "help" for help.
highgo=# alter system set listen_addresses = '*'; ALTER SYSTEM highgo=# alter system set max_connections = 2000; ALTER SYSTEM highgo=# alter system set shared_buffers = '10GB'; ALTER SYSTEM highgo=# alter system set checkpoint_completion_target = 0.8; ALTER SYSTEM highgo=# alter system set log_destination = 'csvlog'; ALTER SYSTEM highgo=# alter system set logging_collector = on; ALTER SYSTEM highgo=# alter system set log_directory = 'hgdb_log'; ALTER SYSTEM highgo=# alter system set log_filename = 'highgodb_%d.log'; ALTER SYSTEM highgo=# alter system set log_rotation_age = '1d'; ALTER SYSTEM highgo=# alter system set log_rotation_size = 0; ALTER SYSTEM highgo=# alter system set log_truncate_on_rotation = on; ALTER SYSTEM highgo=# alter system set log_statement = 'ddl'; ALTER SYSTEM highgo=# alter system set log_connections=on; ALTER SYSTEM highgo=# alter system set log_disconnections=on; ALTER SYSTEM highgo=# alter system set checkpoint_timeout='30min'; ALTER SYSTEM highgo=# alter system set maintenance_work_mem='1GB'; ALTER SYSTEM highgo=# alter system set wal_log_hints=on; ALTER SYSTEM highgo=# alter system set full_page_writes=on; ALTER SYSTEM highgo=# alter system set archive_mode=on; ALTER SYSTEM #红色字体部分,修改为实际归档的存放路径 highgo=# alter system set archive_command='test ! -f /highgo/archive/%f && cp %p /highgo/archive/%f'; ALTER SYSTEM --设置wal文件保留数量 highgo=# alter system set wal_keep_segments=200; ALTER SYSTEM #关闭登录提示,不关闭会影响流复制 highgo=> select set_secure_param('hg_ShowLoginInfo','off'); set_secure_param --------------------------------- set configuration successfully. (1 row) |
注:
1、synchronous_standby_names
参数synchronous_standby_names用于设置备机与主机实时同步。配置参数synchronous_standby_names后,如主节点为同步到任何一个备节点,主节点会出现等待备节点同步的情况。一主一备的情况下不建议配置该参数。此文档示例为一主一备环境,采用归档与增加wal保留数量保证数据安全。
如有多个备节点,建议配置一个实时同步节点,保证主节点宕机时有不会出现数据丢失,写法如下,所有节点名称都配置进去只要有一个节点数据一致即为一致。
alter system set synchronous_standby_names = '1(hgcluster2, hgcluster3, hgcluster1)';
2、SSL
安全版数据库默认开启ssl加密,确认应用是否支持ssl,若不支持,则使用下面命令关闭。
highgo # alter system set ssl=off; |
2) 主节点配置pg_hba.conf
修改pg_hba.conf文件,增加红色字体部分
[highgo@k8s2 HighGoDB-4.3.4.4]$ vi /highgo/data/pg_hba.conf # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 0.0.0.0/0 md5 hostssl all all 127.0.0.1/32 md5 |
3) 重启主节点数据库
[highgo@k8s2 HighGoDB-4.3.4.4]$ pg_ctl restart |
四、 备节点配置
1) 备节点安装数据库
备节点数据库安装过程参照主节点数据库安装过程。安装完成后,停止备节点数据库,删除data目录。过程如下:
[highgo@k8s2 HighGoDB-4.3.4.4]$ pg_ctl stop [highgo@k8s2 HighGoDB-4.3.4.4]$ rm -rf /opt/HighGoDB-4.3.4.4/data |
2) 同步数据到备节点
[highgo@k8s3 highgo]$ pg_basebackup -h 192.168.80.42 -p 5866 -U sysdba -D /highgo/data/ -Fp -P -Xs -R -v -l highgobak Password: pg_basebackup: initiating base backup, waiting for checkpoint to complete pg_basebackup: checkpoint completed pg_basebackup: write-ahead log start point: 0/8000028 on timeline 1 pg_basebackup: starting background WAL receiver 26281/26281 kB (100%), 1/1 tablespace pg_basebackup: write-ahead log end point: 0/80000F8 pg_basebackup: waiting for background process to finish streaming ... pg_basebackup: base backup completed |
3) 修改流复制配置文件
[highgo@k8s3 data]$ vi /highgo/data/recovery.conf standby_mode = 'on' recovery_target_timeline = 'latest' restore_command = 'cp %p /highgo/data/%f' primary_conninfo = 'user=sysdba password=highgo123 host=192.168.80.42 port=5866 sslmode=prefer sslcompression=1 target_session_attrs=any' |
4) 启动备库
[highgo@k8s3 data]$ pg_ctl start |
更多详细信息请登录【瀚高技术支持平台】 查看