PG高可用Repmgr可自动故障转移

目录

架构说明

步骤

1、修改主配置文件postgresql.conf

1.1 关闭数据库修改配置文件

1.2 启动数据库

2、给postgres用户sudo权限(root用户执行)

3、postgres用户配置免密

3.1 修改系统账户postgres密码

3.2 配置ssh信任(2主机都执行)

3.3 测试通信

4、安装repmgr软件

可能遇到的错误

5、在主库创建postgres用户

6、主库创建repmgr库及用户

配置repmgr 免密登录

7、主库节点编辑pg_hba.conf配置repmgr用户认证

8、主节点Repmgr配置文件

9、postgresql.conf文件添加Repmgr插件

可能的报错

10、主节点注册到集群

11、备节点配置

12、克隆主节点数据到备节点

12.1 删除从节点数据目录

12.2 执行前测试

12.3 克隆操作

13、 克隆完成后修改从配置文件

14、注册standby节点

15、验证主从是否正常

15.1 在主库上查看数据库集群状态

15.2 备库使用主库的IP登陆验证

15.3 备上查看集群信息

16、repmgr后台启动

17、failover验证

备库重做

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值