目录
7、主库节点编辑pg_hba.conf配置repmgr用户认证
架构说明
架构 |
操作系统 |
IP |
主机名 |
PG版本 |
端口 |
repmgr插件版本 |
磁盘空间 |
内存 |
CPU |
主 |
centos7 |
192.168.18.9 |
pgserver01 |
PostgreSQL 17 |
5432 |
rrepmgr-5.5.0 |
25G |
2G |
2 |
从 |
centos7 |
192.168.18.11 |
pgserver02 |
PostgreSQL 17 |
5432 |
repmgr-5.5.0 |
25G |
2G |
2 |
先搭建单机环境再配置主从模式
repmgr下载 repmgr - Replication Manager for PostgreSQL clusters
repmgr 5.5.0 works with PostgreSQL 12 ~ PostgreSQL 17
文档地址:https://www.repmgr.org/docs/current/index.html
repmgr升级文档:https://www.repmgr.org/docs/current/upgrading-from-repmgr-3.html
注意:
1、自动故障切换,备提升为主之后,备库需要重做
步骤
1、修改主配置文件postgresql.conf
只修改主库192.168.18.9,因为备库后面会克隆主库的文件过来。
1.1 关闭数据库修改配置文件
192.168.18.9上
修改前备份上个版本的配置文件
cp /data/pg17/pgdata/postgresql.conf /data/pg17/pgdata/postgresql.conf.bak
停库systemctl stop postgresv17 或
su - postgres
pg_stop stop
vim /data/pg17/pgdata/postgresql.conf
修改以下参数:
cluster_name=‘repmgr01’ #实例名称
port=5433
shared_buffers=1GB # 物理内存的1/4
effective_cache_size=4GB # 调整为与内存一样大, 或者略小(减去shared_buffer)
提示:
1、虽然repmgr本身不需要wal归档,这里还是要检查是否设置归档
archive_mode = on
archive_command = 'cp %p /data/pg17/pgdata/archive_log/%f'
2、检查postgresql.conf中下列参数是否设置
wal_level=replica
max_replication_slots=10 ##
hot_standby_feedback=on
max_wal_senders=10 ##wal日志发送的最大进程数
wal_log_hints=on ##开启后记录特定提示位的变化,在wal日志中写入更多信息
hot_standby=on
1.2 启动数据库
pg_ctl start -D /data/pg17/pgdata
或 systemctl start postgresv17
2、给postgres用户sudo权限(root用户执行)
主 18.9上
[root@mysql001 ~]# vim /etc/sudoers 或 visudo
##允许“postgres”用户组的成员运行所有命令,且运行时不需要输入密码
%postgres ALL=(ALL) NOPASSWD: ALL
...
3、postgres用户配置免密
3.1 修改系统账户postgres密码
2台机器都修改
[root@pgserver01 ~]# echo "postgres" | passwd --stdin postgres
[root@pgserver02 ~]# echo "postgres" | passwd --stdin postgres
3.2 配置ssh信任(2主机都执行)
测试时使用操作系统账号root或者postgres用户都可以
18.9上
ssh-keygen -t rsa
ssh-copy-id 192.168.18.11
18.11 上
ssh-keygen -t rsa
ssh-copy-id 192.168.18.9
3.3 测试通信
18.9上 ssh 192.168.18.11 date
18.11上 ssh 192.168.18.9 date
4、安装repmgr软件
两个节点都需要安装,可两个节点同时安装,也可后续再安装节点2
[root@mysql002 ~]# cd /data
[root@mysql002 data]#tar -zxvf repmgr-5.5.0_pg13_17.tar.gz
mkdir /data/repmgr/
chown -R postgres: /data/r