1

我目前在 Ubuntu 14.04 上有一个包含许多数据库的主 postgresql 9.4 服务器。

我尝试使用 Barman 来设置备份,但想设置流式副本,以便当主服务器出现故障时,我可以将备用副本提升为新的主服务器。我查看了repmgr,但这只会产生一个只读的热备用服务器。这是否意味着如果我想提升备用以接受写事务,我应该使用多主解决方案?

我设想系统是

 M1 (master)  -------------via ???-------------- S1 (standby/another master)
   |                                                |
   |via Barman                                      | via Barman
   |                                                |
B1 (backup server#1)                            B2 (backup server#2)

理想情况下,在 M1 宕机后,我可以将 S1 提升为新的 master,它可以接受读/写事务,而不仅仅是只读的。一旦我们带回 M1,M1 可以保持待机状态,但会与 S1 一起流式传输。

postgres 9.4 BDR(双向复制)是 M1 和 S1 之间流式传输的好解决方案吗?或者是否有任何商业产品可以做到这一点?

我不是 DBA,非常感谢您的意见。

太感谢了!

4

2 回答 2

1

您正在寻找一个主集群,多个(可能是 2 个)暖备用集群。如果原来的服务器出现故障,可以将一台备用服务器提升为主服务器。并且根据 9.4,支持流式复制。

`M1(主)---> S1(热备用)---> S2(级联复制)`

但我建议同时使用基于文件和流的复制作为备用。

Postgresql 9.4 以上都支持。检查http://www.postgresql.org/docs/9.4/static/high-availability.html

于 2015-02-25T18:43:21.893 回答
1

听起来标准流复制就是您所追求的。

在这种情况下,您有一个负责所有写入的主服务器,然后是一个或多个只读副本,您可以将读取拆分以减少主服务器上的负载。

如果主数据库服务器发生任何事情,您可以将其中一个副本提升为主数据库服务器。一旦一个副本被提升到一个主数据库,它就可以被写入。

查看http://www.slideshare.net/jkshah/py-pg-day2013harep了解有关这些设置如何工作的更多信息(请跳至幻灯片 21 了解 postgresql 内容)

于 2015-02-24T19:02:32.690 回答