我目前在Ubuntu 14.04上有一个包含许多数据库的master 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提升为新的主设备,它可以接受读/写事务而不仅仅是只读。一旦我们带回M1,M1可以保持待机状态,但会以S1流式传输。
postgres 9.4 BDR(双向复制)是M1和S1之间流的好解决方案吗?或者是否有任何商业产品可以做到这一点?
我不是DBA,非常感谢您的意见。
非常感谢你!
答案 0 :(得分:1)
听起来像标准的流式复制就是你所追求的。
在这种情况下,您有一个主服务器可以接受所有写操作,然后是一个或多个只读副本,您可以将这些副本分开读取以减少主服务器上的负载。
如果master数据库服务器发生任何事情,您可以将其中一个副本提升为master。将副本提升为主数据库后,即可将其写入。
查看http://www.slideshare.net/jkshah/py-pg-day2013harep以获取有关这些设置如何工作的更多信息(跳过第21页的postgresql内容)
答案 1 :(得分:1)
您正在寻找的是单个主人,多个(可能是2个)热备用群集。如果原始服务器发生故障,可以将一个备用服务器提升为主服务器。根据9.4,支持流复制。
`M1 (master) ---> S1 (warm stand-by) ---> S2 ( cascading replication)`
但我建议同时使用基于文件和流的复制进行备用。
Postgresql 9.4支持以上所有内容。查看http://www.postgresql.org/docs/9.4/static/high-availability.html