流式复制故障转移 - 如何将第二个从站指向新的主站?

And*_*uce 5 postgresql replication

我在实验室中设置了一个 Postgres 数据库 HA 集群。我正在使用 PgPool-II 来管理故障转移。

对于集群本身,我设置了三个相同的 Postgres 9.2 服务器,如下所示:

  • 服务器 A - 主数据库
  • 服务器 B - 具有同步流式复制的从数据库
  • 服务器 C - 带有异步流复制的从数据库(可能的同步服务器)

当服务器 A 出现故障时,服务器 B 接管(这里没有问题)。但是,我需要确保服务器 C 被“重新指向”以从服务器 B 进行流传输。

目前,我正在通过从 B 到 C 进行完整的基本备份来实现这一点 - 它有效,但鉴于两个数据库应该几乎在服务器 A 出现故障时相同......

是否有一种明智的方法可以让服务器 C 在不进行完整基础备份的情况下从服务器 B 开始流式传输?

我不是在寻找黑客来让它工作 - 实验室系统最终将进入生产环境,所以我需要一个可靠的解决方案......

任何建议或指示将是最受欢迎的!

干杯。

小智 3

在 PostgreSQL 9.2 中,如果您还使用日志归档(并且在 recovery.conf 中定义了 Restore_command),那么您应该能够通过更改其 recovery.conf 文件将服务器 C 重新指向 B。它应该自动工作 - 但它确实需要日志存档才能工作(机器 B 将发送有关时间线切换的关键信息到日志存档,然后机器 C 将重播该信息)。

PostgreSQL 9.3 将能够通过纯流式复制来处理从站的重新指向。