本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理 RDS Postgre 的邏輯槽同步SQL
從社群 PostgreSQL 17 開始,已透過 參數sync_replication_slots
或相關函數 引入自動同步主要伺服器到待命伺服器邏輯複寫槽的新功能pg_sync_replication_slots()
,該功能會在執行時手動同步槽。
這些功能從 RDS for PostgreSQL 17 開始提供。典型設定將具有主要執行個體及其僅供讀取複本,以及主要 的邏輯複寫訂閱者。
確保訂閱的建立,容錯移轉選項設定為 true:
CREATE SUBSCRIPTION
subname
CONNECTION 'host=...' PUBLICATIONpubname
WITH (failover = true);
這會在啟用容錯移轉的發佈者上建立邏輯插槽。
postgres=> SELECT slot_name, slot_type, failover FROM pg_catalog.pg_replication_slots; slot_name | slot_type | failover -----------+-----------+---------- subname | logical | t (1 row)
透過啟用槽同步,主要 上的所有容錯移轉邏輯複寫槽都會在實體待命上自動建立,並定期同步。確定已透過參數群組設定下列值:
-
rds.logical_replication
必須是1
才能啟用邏輯複寫 -
hot_standby_feedback
必須在待命1
狀態 -
rds.logical_slot_sync_dbname
待命上的 必須設定為有效的資料庫名稱參數的預設值為
postgres
。如果邏輯發佈執行個體具有postgres
資料庫,則不需要變更預設參數。 -
synchronized_standby_slots
主要 上的 必須設定為待命的實體複寫槽,以同步方式呈現 -
sync_replication_slots
必須是1
才能啟用自動同步
使用啟用容錯移轉的訂閱槽和上述參數值,當待命提升時,訂閱者可以變更對此新提升執行個體的訂閱,並無縫地繼續邏輯複寫。