故障转移后的Postgres故障回复

时间:2018-07-25 00:05:32

标签: postgresql database-replication failover

我们正在Postgres v10系统中使用流式复制。我们已经设法使故障转移从主数据库切换到备用数据库以正常工作,但是我们无法确定如何故障恢复到原始设置。

我们的设置可能有点不寻常,因为每个服务器都位于不同的数据中心中。故障转移不仅包括将主数据库移动到其他数据中心,还包括关联的客户端应用程序。因此,由于速度/带宽原因,在故障转移后我们可以恢复(故障回复)到我们的正常配置非常重要。

我们的设置如下:

Primary1  ----replicate---> Standby1 ---replicate---> HotStandby2 

如前所述,我们可以杀死主服务器并将故障转移到以下情况

Standby1 ---replicate---> HotStandby2  

我们现在想进行故障回复,因此我们建立了一个名为Primary2的新数据库,并将其设置为Standby1的副本。

Standby1 ---replicate---> HotStandby2  
         ---replicate---> Primary2  

一段时间后,Primary2与Standby1同步,因此我们希望将Primary2升级为活动服务器,然后将Standby2重新配置为对Primary2的复制,以恢复到原始状态

Primary2  ----replicate---> Standby1 ---replicate---> HotStandby2 

将Primary2提升为活动状态很容易,但是我们找不到任何将Standby2从活动状态转换为待机状态的方法。

我们尝试了

  1. 确保Primary2与Standby1同步
  2. 更改recover.done以恢复recover.conf
  3. 在recovery.conf中添加recovery_target_timeline ='latest'
  4. 设置新的复制插槽
  5. 使用pg_rewind
  6. 将pg_rewind与归档的WAR文件一起使用

我们的大多数尝试导致Standby1仍作为主服务器运行,并且日志文件中出现了一些关于时间线不同的奇怪消息。...

任何人都有任何想法或可以向我们介绍一些文章-教程等。

在Postgres中甚至有可能吗?还是我们应该重建Standby1,如果可以,那么HotStandby2应该如何?

0 个答案:

没有答案