无法使用repmgr降级数据库

时间:2014-03-16 23:16:35

标签: postgresql postgresql-9.1 repmgr

我正在使用repmgr并成功故障转移到备用节点。但是,当我尝试恢复失败的主节点时,我现在发现我有两个主节点。

我尝试将备用节点重新注册为待机状态。但我发现当repmgr检查节点的模式时,它发现它处于恢复模式并且不允许它。

repmgr -f /var/lib/pgsql/repmgr/repmgr.conf cluster show
=> Role      | Connection String 
* master  | host=<IP Address> user=repmgr dbname=my_db
* master  | host=<IP Address> user=repmgr dbname=my_db

节点1

repmgr -f /var/lib/pgsql/repmgr/repmgr.conf --verbose master register --force
=> Opening configuration file: /var/lib/pgsql/repmgr/repmgr.conf
repmgr connecting to master database
repmgr connected to master, checking its state
finding node list for cluster 'my_cluster'
checking role of cluster node 'host=<IP Address> user=repmgr dbname=my_db'
There is a master already in cluster my_cluster

Node 2
============
repmgr -f /var/lib/pgsql/repmgr/repmgr.conf standby clone -h <master Node IP> --force
=> repmgr: directory "." exists but is not empty

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

Trick是关闭要降级的服务器上的postgres守护程序。在完成克隆之前,您无需再次将其重新打开,到那时cluster show将显示旧主服务器已成功降级。

根据您的连接池逻辑,您可能希望关闭旧主服务器,只需将案例内容写入其中,然后在克隆过程中丢失。