逻辑复制槽故障转移(Logical Replication Slot Failover)

RDS PostgreSQL逻辑复制槽故障转移(Logical Replication Slot Failover)功能可以将所有的逻辑复制槽从主实例同步到备实例,从而实现逻辑复制槽的故障转移。

前提条件

PostgreSQL 10或以上版本均支持此功能,如提示不支持,请升级内核小版本,具体操作,请参见升级内核小版本

背景信息

PostgreSQL在主实例创建的Replication Slot,不会通过流复制协议同步到备实例。当实例发生主备切换,会造成Replication Slot丢失,进而导致逻辑订阅中断。RDS PostgreSQL逻辑复制槽故障转移功能可以将所有的逻辑复制槽从主实例同步到备实例,实现逻辑复制槽的故障转移。

说明
  • RDS PostgreSQL默认开启该特性。当前只支持逻辑复制槽(Logical Replication Slot)的故障转移,物理复制槽(Physical Replication Slot)暂不支持。

  • 逻辑复制槽(Logical Replication Slot)的更多信息,请参见官方文档

查看逻辑复制槽故障转移功能开启状态

执行如下SQL命令查看逻辑复制槽故障转移功能是否开启。

SHOW rds_failover_slot_mode;

查询结果

 rds_failover_slot_mode
------------------------
 async
(1 行记录)

取值说明:

  • async:表示已开启逻辑复制槽故障转移功能。

  • off:表示当前版本已支持逻辑复制槽故障转移功能,但没有开启。

  • ERROR: unrecognized configuration parameter "rds_failover_slot_mode":表示当前版本不支持逻辑复制槽故障转移功能,查看实例大版本和小版本,确保符合前提条件要求,如不满足但仍需使用此功能,请升级版本后再次查看,具体请参见升级数据库大版本升级内核小版本