记录一次PG数据库宕机的REPMGR切换

Posted 李石岩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录一次PG数据库宕机的REPMGR切换相关的知识,希望对你有一定的参考价值。

1.  PG数据库主节点发生宕机以后,确认repmgr cluster now已经发生了切换,原来备库变成主库。

2. 发生切换后需要对原来的主库进行恢复。

首先需要启动一次数据库,这是将这个要被恢复数据库进行刷新清理一次日志。
由于采用了zfs方式,发现zfs模块没启动,wiki搜索下zfs,启动下zfs,然后再进行执行以下语句。
systemctl start postgresql-11
然后repmgr cluster now,发现为双主了。
再次进行对该已经进行failvoer节点的进行关闭.
systemctl stop postgresql-11
再对数据库添加到数据库中。注意,该节点为原主库。xxx.xxx.xxx.xxx为新主库
repmgr -f ~/repmgr.conf node rejoin -d "host=xxx.xxx.xxx.xxx port=5432 user=repmgr dbname=repmgr password=xxx" --force-rewind

10几分钟后,数据库成功加入数据库集群。在此期间,我们检查了下pg_wal下的归档,发现重新加入主库的时候,有一段事件,新加入的这里面的日志为0,不要紧
我们等着就行了。

3.
应用要求PG数据库启动在25.132上,这样就必须将改数据库进行switchover。

首先关闭新主库上的vip
然后进行手动switchover
执行以下命令 postgres用户。
repmgr standby switchover -f ~/repmgr.conf --siblings-follow
2分钟左右切换成功

最后添加vip到25.132

4. 配置下repmgr守护进程。


postges用户
repmgrd -f ~/repmgr.conf -d

以上是关于记录一次PG数据库宕机的REPMGR切换的主要内容,如果未能解决你的问题,请参考以下文章

repmgr 集群双主问题处理

repmgr+pg12构建高可用集群

一次修改数据库物理文件造成Mysql宕机的恢复记录

mysql主从同步宕机切换问题

repmgr+pg12构建高可用集群

repmgr+pg12集群,挂掉的主机如何手动加入集群