我想在云环境中构建一个 Postgresql 集群(是的,我知道这是个坏主意……但这不是问题)。为了您的信息,我使用了 Dockerized Postgresql(参见:https ://github.com/paunin/postgres-docker-cluster ),但这不是问题,也不是问题。
所以我安装了 2 个带有流复制的 Postgresql 9.5。在每台主机上,我都安装并正确配置了 repmgr 3.2.1。
以下案例有一些问题:
- 阻止主人,
- 等待从属设备上的故障转移 -> 好的,
- 重新启动旧主机 -> Ko 我在集群中显示了 2 个主机,但
repmgr cluster show
我没有找到任何解决方案来强制旧主机成为从机。
我发现的唯一丑陋的解决方案是删除旧master的所有数据并重新启动它。这样做,它按预期变成了奴隶(但需要完全重新同步......)。
请注意,似乎无法强迫旧主人成为奴隶。repmgr standby register
不要像它说的那样工作:
[2016-12-06 15:04:04] [INFO] connecting to standby database
[2016-12-06 15:04:04] [ERROR] this node should be a standby (user=replication_user password=replication_pass host=psg-host21 dbname=replication_db port=5432 connect_timeout=2)
[2016-12-06 15:04:04] [INFO] connecting to database
Role | Name | Upstream | Connection String
----------+------------|------------|------------------------------------------------------------------------------------------------------------------
* master | psg-host21 | | user=replication_user password=replication_pass host=psg-host21 dbname=replication_db port=5432 connect_timeout=2
* master | psg-host22 | psg-host21 | user=replication_user password=replication_pass host=psg-host22 dbname=replication_db port=5432 connect_timeout=2
任何帮助将不胜感激。