管理 RDS for PostgreSQL 的邏輯槽同步 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

管理 RDS for PostgreSQL 的邏輯槽同步

從社群 PostgreSQL 17 開始,已透過 參數sync_replication_slots或相關函數 引入自動同步邏輯複寫插槽的新功能pg_sync_replication_slots(),該功能會在執行時手動同步插槽。

從 RDS for PostgreSQL 17 開始提供這些功能。典型的設定將具有主要執行個體及其僅供讀取複本,以及主要執行個體的邏輯複寫訂閱者。

確保已建立訂閱,並將容錯移轉選項設定為 true:

CREATE SUBSCRIPTION subname CONNECTION 'host=...' PUBLICATION pubname 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才能啟用自動同步

透過啟用容錯移轉的訂閱槽和上述參數值,當待命提升時,訂閱者可以變更對此新提升執行個體的訂閱,並無縫地繼續邏輯複寫。