环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:5.6.5
 
症状

HG_Repmgr多是通过repmgrd守护进程对集群状态进行监控来自动完成相应的管理,如果集群有人工干预或人工误操作等行为,此时Repmgr集群管理系统可能就不能进行自动的管理工作,可能会出现集群状态异常的情况,这时如需使集群恢复正常,则可重做备库。

 
问题原因

故障模拟(repmgrd进程正在运行中):
主库  192.168.197.128
备库  192.168.197.132
停掉主库:pg_ctl  stop -mf
等待一分钟后,启动主库,检查集群状态:此时集群状态出现异常:

集群备库重做步骤_数据库集群

 

 
解决方案

由于repmgrd进程正在运行中,故在主库停掉后,repmgrd会检测到主库挂掉并选取一个备库提升为主库,所以原备库的信息最全,我们将原备库作为新主库,原主库重做,使其作为备库加入集群。

①.停掉原主库repmgrd进程

ps -ef|grep  repmgrd
kill -15  repmgrd进程号

 

②将原主库停掉

pg_ctl  stop -mf

 

③将原主库的数据目录移动或修改名称

mv   data    data-bak
④在原主库中使用repmgr  standby   clone  重做备库
repmgr  standby  clone  -h  新主库ip  -U  用户名   -d 数据库名

⑤启动备机数据库并注册

pg_ctl start
repmgr  standby   register

⑥查看集群状态:

repmgr  cluster show

集群备库重做步骤_数据库集群_02

集群状态正常

⑦启动repmgrd进程

repmgrd -d
重做备库完成