我是PostgreSQL数据库的新手。最近,我们的开发人员需要对我们的系统进行一些升级。
因此,我们计划实现某种方法以实现数据库故障转移。
根据我在此处的 Postgresql Wiki的阅读,我们正在尝试实现热备用或热备用。所以我的问题是:
- 它们之间的主要区别是什么?
- 哪一个更好?
- 我们还有其他方法可以考虑在Postgres数据库中实现高可用性吗?
我是PostgreSQL数据库的新手。最近,我们的开发人员需要对我们的系统进行一些升级。
因此,我们计划实现某种方法以实现数据库故障转移。
根据我在此处的 Postgresql Wiki的阅读,我们正在尝试实现热备用或热备用。所以我的问题是:
Answers:
1a。热备用是一种“实时”增量备份,每个备份都有完整的变更块(沃尔码段),每个变更块16 mb,填充后将其发送到备用节点。您无法查询热备份节点。16 mb的更改(默认情况下)可能意味着很多事务,如果主服务器失败,它们将会丢失。
1b。热备用。(也是“实时”增量备份)。将小的更改发送到从属服务器(沃尔玛记录,这是沃尔玛网段的一小部分)。您可以查询(只读)热备用节点。如果主服务器发生故障,丢失交易的窗口很小。有同步和异步热备用节点,同步节点将强制主节点等待其确认更改的应用程序,然后主节点将提交事务。在异步复制中,主节点发送wal记录而不等待确认。前者需要主机和从机之间非常可靠和快速的链接,也增加了主机的开销,但不保证数据丢失。
关于增量备份:1.制作整个数据库安装的基本副本。2.将其运送到从站。3.配置它以赶上更改。
流复制(热备用)在这里是赢家。我个人更喜欢异步复制,因为它不会对主服务器造成很大的负担,并且复制滞后非常小(在许多情况下为几秒钟)
pg-pool是此设置的一种补充。它充当应用程序和参与上述复制配置的服务器之间的代理,具有负载平衡和并行查询功能。它还能够提供自动故障转移。 http://www.pgpool.net/pgpool-web/contrib_docs/simple_sr_setting/index.html
您已经得到的答案很有用,但此处的术语有些混乱。所有内置复制解决方案都使用相同的基本机制:将预写日志数据复制到备用服务器。
您可以使用archive_command工具或流复制(SR)一次移动该WAL数据以复制16MB文件。如果使用SR,则实际上也应该设置归档,服务器将在它们之间进行适当切换。
您可以拥有一个热备用服务器,该服务器无法回答查询。或者,您可以有一个热备用服务器,该服务器可以回答只读服务器。这与数据如何进入备用数据库无关。
这两个选择中的每个都与其他每个组合在一起,您可以拥有所有四个组合。您可以让WOT待机时回答查询,同时在WAL段中一次接收文件。您可以具有未启用热备功能的流复制服务器,因此它不会回答查询。如今,最常见的情况就是流复制和热备用。这就是全部功能集。同样,不要仅仅因为有可能避免现在就忽略旧的archive_command机制。它仍然可以帮助您避免流式传输故障,否则这些故障将很难恢复。