邏輯復(fù)制槽故障轉(zhuǎn)移(Logical Replication Slot Failover)
RDS PostgreSQL邏輯復(fù)制槽故障轉(zhuǎn)移(Logical Replication Slot Failover)功能可以將所有的邏輯復(fù)制槽從主實(shí)例同步到備實(shí)例,從而實(shí)現(xiàn)邏輯復(fù)制槽的故障轉(zhuǎn)移。
前提條件
PostgreSQL 10或以上版本均支持此功能,如提示不支持,請(qǐng)升級(jí)內(nèi)核小版本,具體操作,請(qǐng)參見升級(jí)內(nèi)核小版本。
背景信息
PostgreSQL在主實(shí)例創(chuàng)建的Replication Slot,不會(huì)通過(guò)流復(fù)制協(xié)議同步到備實(shí)例。當(dāng)實(shí)例發(fā)生主備切換,會(huì)造成Replication Slot丟失,進(jìn)而導(dǎo)致邏輯訂閱中斷。RDS PostgreSQL邏輯復(fù)制槽故障轉(zhuǎn)移功能可以將所有的邏輯復(fù)制槽從主實(shí)例同步到備實(shí)例,實(shí)現(xiàn)邏輯復(fù)制槽的故障轉(zhuǎn)移。
RDS PostgreSQL默認(rèn)開啟該特性。當(dāng)前只支持邏輯復(fù)制槽(Logical Replication Slot)的故障轉(zhuǎn)移,物理復(fù)制槽(Physical Replication Slot)暫不支持。
邏輯復(fù)制槽(Logical Replication Slot)的更多信息,請(qǐng)參見官方文檔。
查看邏輯復(fù)制槽故障轉(zhuǎn)移功能開啟狀態(tài)
執(zhí)行如下SQL命令查看邏輯復(fù)制槽故障轉(zhuǎn)移功能是否開啟。
SHOW rds_failover_slot_mode;
查詢結(jié)果
rds_failover_slot_mode
------------------------
async
(1 行記錄)
取值說(shuō)明:
async:表示已開啟邏輯復(fù)制槽故障轉(zhuǎn)移功能。
off:表示當(dāng)前版本已支持邏輯復(fù)制槽故障轉(zhuǎn)移功能,但沒(méi)有開啟。
ERROR: unrecognized configuration parameter "rds_failover_slot_mode":表示當(dāng)前版本不支持邏輯復(fù)制槽故障轉(zhuǎn)移功能,查看實(shí)例大版本和小版本,確保符合前提條件要求,如不滿足但仍需使用此功能,請(qǐng)升級(jí)版本后再次查看,具體請(qǐng)參見升級(jí)數(shù)據(jù)庫(kù)大版本和升級(jí)內(nèi)核小版本。