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

前提条件

RDS PostgreSQL实例版本需满足以下条件:
RDS PostgreSQL大版本 内核小版本
10 20201230及以上
11 20200421及以上
12 20201230及以上
13 20201230及以上
说明 内核小版本查看及升级请参见升级内核小版本

背景信息

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:表示当前版本已支持逻辑复制槽故障转移功能,但没有开启,请提交工单设置rds_failover_slot_mode=async
  • ERROR: unrecognized configuration parameter "rds_failover_slot_mode":表示当前版本不支持逻辑复制槽故障转移功能,查看实例大版本和小版本,确保符合前提条件要求,如不满足但仍需使用此功能,请升级版本后再次查看,具体请参见升级数据库大版本升级内核小版本