新主人员的POSTGRES REPLICATION

问题描述:

我们正在整合架构以支持我们的Postgres 9.5数据库的高可用性。我们有1个主站和3个从站复制主站的数据。当主站发生故障时,从站1被升级为新的主站,但从站2和从站3仍然指向先前的主站而不是更新的主站节点。 有没有办法让奴隶动态读取新的主人。还是需要手动更改配置并重新启动从站?新主人员的POSTGRES REPLICATION

+0

最简单的方法是使用repmgr – e4c5

正如e4c5所述,您可以使用repmgr来管理这种类型的任务。我尝试过repmgr,而且我没有遇到任何问题。

我遵循了这样做的教程,这里是链接:

http://jensd.be/591/linux/setup-a-redundant-postgresql-database-with-repmgr-and-pgpool

我希望跟着你想要的东西,没有任何问题,这个教程你可以做。

有没有简单的答案,但我会尝试:

  • 当主服务器发生故障,你会促进一个奴隶,并重新配置所有其他的奴隶为目标的新主人。但是有一种情况可能不需要重新配置其他从属设备:如果您使用的是“WAL归档”,并且您的归档文件存储在共享驱动器上,而该共享驱动器在旧主设备故障后仍然存在。如果新主服务器继续使用相同的共享存储,则可能不需要重新配置其他从服务器。再一次,我从来没有尝试过 - 你可以试试。
  • 如果您的复制机制基于“复制插槽”(在PostgreSQL 9.4中引入) - 那么您必须重新配置所有从站。在这种情况下,实际上你必须从头开始重建所有其他从机上的复制(就像它们从来不是从机一样)。不过,在我看来,“复制插槽”是更好的选择。

关于自动化:您问过是否可以自动重新配置其他从站,但是您错过了要提及的一点是如果您实施了任何故障转移自动化。我想说的是,PostgreSQL本身不会自动执行故障转移(当主服务器失败时提升其中一个从服务器)。至少您必须在要升级的从站上创建“触发文件”,并且您必须手动或通过使用其他产品(例如pgpool2)来执行此操作。

如果您使用pgpool2 - 您可以通过设置follow_master_command pgpool.conf值来设置自动从站重新配置。

最后我会强烈推荐阅读this tutorial - 它会让你的生活更轻松。

编辑: 我忘了说了两件事情:

  • 只要新主人是提升可能不是一个好主意,自动重新配置所有其他的奴隶,特别是如果你有许多奴隶。这会给你的新主服务器和你的网络带来额外的压力,所以在某些情况下,最好延迟这个例如夜间服务。更多关于这个在上面的教程。
  • 我写了教程。