【问题标题】:postgresql 9.4 high availability topologypostgresql 9.4 高可用拓扑
【发布时间】:2015-02-24 18:36:22
【问题描述】:

我目前在 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,非常感谢您的意见。

非常感谢!

【问题讨论】:

    标签: postgresql replication database-replication postgresql-9.4


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 这是否意味着我需要在待机时设置hot_standby = on?但是当 hot_standby=on 时,备用数据库将在恢复期间进行只读查询。为了将待机提升为功能齐全(读写)的主机,我应该让 host_standby 关闭吗?
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-21
      • 2017-10-11
      • 1970-01-01
      • 2011-08-19
      • 2011-03-29
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多