postgresql 的高可用性

use*_*720 8 postgresql linux high-availability

我是 PostgreSQL 数据库的新手。最近我们的开发人员需要对我们的系统进行一些升级。

因此,我们计划实施一些方法来实现数据库故障转移。

根据我在此处阅读 postgresql wiki ,我们正在尝试实现热备用或热备用。所以我的问题是:

  1. 它们之间的主要区别是什么?
  2. 哪一个更好?
  3. 有没有其他方法可以考虑在我们的 Postgres 数据库中实现高可用性?

Ren*_*des 6

1a. 热备份是一个“实时”增量备份,每个更改块(wal 段)都为 16 mb,一旦它们被填满,就会发送到备用节点。您不能查询热备份节点。16 mb 的更改(默认情况下)可能意味着大量事务,如果主节点失败,它们将丢失。

1b. 热备。(也是“实时”增量备份) .small 更改被发送到从属(wal 记录,这是 wal 段的微小部分)。您可以查询(只读)热备节点。如果 master 失败,丢失事务的窗口非常小。有同步热备节点和异步热备节点,同步节点会强制master等待其确认申请变更,然后master提交事务。异步复制中master发送wal记录,不等待确认. 前者需要master和slave之间非常可靠和快速的链接,也会增加master的开销但保证不会丢失数据。

关于增量备份: 1. 您获取整个数据库安装的基本副本。2. 将其运送到奴隶。3. 配置它以赶上变化。

流式复制(热备份)在这里是赢家。我个人更喜欢异步复制,因为它不会给 master 带来相当大的负担,而且复制延迟非常小(很多情况下几秒钟)

此设置的一个补充是 pg-pool。它充当应用程序和参与上述复制配置的服务器之间的代理,它具有负载平衡和并行查询功能。它还能够提供自动故障转移。 http://www.pgpool.net/pgpool-web/contrib_docs/simple_sr_setting/index.html