Oracle GoldenGate 的容錯移轉支援 (含 PostgreSQL 17 及更新版本)

瞭解如何使用 PostgreSQL 17 和更新版本設定 Oracle GoldenGate 容錯移轉。

PostgreSQL 17 已導入在主要與待命伺服器之間自動同步邏輯複製插槽的支援。與 Oracle GoldenGate 搭配使用時,此功能可順暢地容錯移轉 Extract 處理作業,而無須手動重新建立複製插槽。

此功能可確保在容錯移轉事件期間,以最少的中斷持續進行資料複製。

啟用 Oracle GoldenGate for PostgreSQL 17 和更新版本的容錯移轉支援的先決條件

啟用容錯移轉支援之前,請確定下列項目:

設定容錯移轉支援

在 PostgreSQL 主要和待命伺服器上執行下列工作,然後在 Oracle GoldenGate Extract 端上設定容錯移轉支援。

  1. 設定 PostgreSQL 主要和待命伺服器。

    在主要伺服器上:更新 PostgreSQL 組態參數:

    wal_level = logical
    max_replication_slots = *sufficient_value*
    sync_replication_slots = on
    synchronized_standby_slots = '*standby_slot_name*'

    在待命伺服器上

    更新組態參數:

    hot_standby_feedback = on
    primary_slot_name = '*primary_physical_slot*'
  2. 更新組態之後,請同時在主要和待命伺服器上重新啟動 PostgreSQL。

  3. 註冊 Extract 處理作業時啟用容錯移轉插槽支援。

    使用 Oracle GoldenGate Web 介面

    建立 PostgreSQL 的 Extract 時,請啟用「容錯移轉複製插槽」切換開關:

    啟用容錯移轉複寫插槽切換開關。

    使用 AdminClient

    REGISTER EXTRACT *extract_name* FAILOVERSLOT;

    使用 REST API

    POST /services/v2/extracts/AT
    {
        "credentials": {
            "alias": "fail1"
        },
        "registration": "default",
        "failoverSlot": true
    }
  4. 驗證 PostgreSQL 主要伺服器和待命伺服器上的組態:

    在主要伺服器上:執行下列查詢:

    SELECT slot_name, slot_type, failover
    FROM pg_replication_slots;

    執行結果應該顯示:

    • 槽位類型為 logical

    • failover 設定為 true

    在待命伺服器上:執行下列查詢:

    SELECT slot_name, restart_lsn
    FROM pg_replication_slots;

    執行結果應該顯示:

    • 待命資料庫上有相同的槽位

    • LSN 值正在進行中

  5. 執行下列步驟來執行容錯移轉:

    1. 使用設定的高可用性機制,將待命伺服器升級為主要伺服器。

    2. 更新 Extract 組態以連線至新的主要資料庫。

    3. 開始或繼續「擷取」處理程序。

    複製會從上次處理的位置繼續進行,不需要重新初始化。

  6. 監督複寫插槽狀態:

    SELECT slot_name, active, restart_lsn
    FROM pg_replication_slots;

    請檢查下列各項:

    • 槽位作用中

    • 重新啟動 LSN 前進

    • 無過多的 WAL 累積

  7. 移除未使用的複製插槽有助於避免過多的 WAL 保留和磁碟使用。

    SELECT pg_drop_replication_slot('*slot_name*');

容錯移轉支援組態的最佳做法

如需使用 Oracle GoldenGate Extract for PostgreSQL 設定容錯移轉支援,請考量下列最佳做法:

限制

雲端特定準則