在PostgreSQL上进行流式复制和故障转移


14

我正在对PostgreSQL复制进行概念验证。在论坛上进行讨论后,我们决定选择流复制,因为与其他解决方案相比,它的性能很好。PostgreSQL没有为流复制提供自动故障转移。我们可以使用触发文件将从站切换为主站,但这是不可管理的。因此,我想要一个具有自动故障转移和高可用性的解决方案。

提供不同的解决方案:

  1. Repmgr
  2. Linux心跳
  3. Pgpool-II(仅用于自动故障转移)
  4. 如果使用其他任何工具。

我的问题是应该使用哪种解决方案?

Answers:


8

在我们的商店中,我们选择了repmgr和pgbouncer而不是pgpool。repmgr提供了一些不错的工具来设置和维护复制数据库服务器的集群。在我们的案例中,有1个主节点和2个从节点(一个故障转移和一个实时读取性能测试,可以成为新的主节点的故障转移)。pgpool的配置更改存在问题,在大多数情况下,您必须重新启动服务,因此会有一些停机时间。当您需要24x7x365可用性时,这是一个问题。

repmgrd(守护进程)有助于在故障转移后选择新的主服务器,您确实不希望出现分裂情况。我们有一个用于主数据库的虚拟ip地址,该数据库当时是主数据库。当另一台服务器成为主服务器时,这是唯一使用此地址的服务器。每个数据库服务器还具有用于只读查询的自己的ip地址。

repmgr由最初创建流复制的那些人维护,因此他们知道他们在说什么。版本2.0即将发布。

为最坏的情况做准备,通过拔下电源和网络插头进行一些严肃的测试!当出现问题时,许多其他事情已经出现问题,当您负担不起时,它们会咬在后面。

复制是一回事,而在出现一些严重问题之后进行有效的故障转移是另一回事。


1

我们同时使用两种不同的解决方案...

Pgpool-II用于同步复制,而Slony2用于异步(触发)复制。

表现出色


谢谢您的回应...实际上,我正在尝试使用流复制的Pgpool-II。它提供了自动故障转移。但是,如果我再次启动主节点,pgpool-II可以再次作为主节点或备用节点启动吗?
撒拉卜2012年

据我绝对不知道。您将必须手动恢复主节点。我们的设置有些不同。这是一个多主机环境,所有节点都具有平等的权利。如果一个节点不同步,负载平衡器将拒绝将客户端重定向到该节点。
user5701 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.