我已经设置了从主数据库到从数据库的流复制。如果 master 关闭,slave 将接管。复制和故障转移工作正常。
我有一个网络应用程序使用主数据库来存储数据。
一些细节:
- 两台服务器都运行 Centos 6.4 和 Postgres 9.2。
- 使用 Postgres 内置复制设置从主服务器到从服务器的流式复制。
- 故障转移由 Postgresql JDBC 驱动程序 (v9.2-1003) 通过在连接字符串中指定主/从来处理。
我想继续使用这种复制方法。
问题:
- 从服务器是只读的。如何在故障转移后自动将其设为主(可写)?
- 如果原来的 master 突然又开始工作了,我们现在有两个 master 怎么办?怎么才能射中原主的脑袋?自动。
最佳答案
我建议查看带有 failover_command 选项的 pgpool。在那里你可以有一个小的 shell 脚本来以读/写模式重新启动从站。 pgpool
如果您在使用 pgpool 时遇到一些问题,我遵循的这个故障排除过程可能会有所帮助 - pgpool - stracing
关于Postgresql 9.2 故障转移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19450502/