PostgreSQL 17以上でのOracle GoldenGateのフェイルオーバー・サポート

PostgreSQL 17以上を使用したOracle GoldenGateのフェイルオーバーの構成について学習します。

PostgreSQL 17では、プライマリ・サーバーとスタンバイ・サーバー間の論理レプリケーション・スロットの自動同期のサポートが導入されました。この機能とOracle GoldenGateを使用すると、レプリケーション・スロットの手動再作成を必要とせずに、Extractプロセスをシームレスにフェイルオーバーできます。

この機能により、フェイルオーバー・イベント中の中断を最小限に抑えながら、継続的なデータ・レプリケーションを実現します。

PostgreSQL 17以上のOracle GoldenGateのフェイルオーバー・サポートを有効にするための前提条件

フェイルオーバーサポートを有効にする前に、次のことを確認してください。

フェイルオーバーサポートの構成

フェイルオーバー・サポートを構成するには、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の作成時に、フェイルオーバー・レプリケーション・スロットの切替えスイッチを有効にします。

    「Failover Replication Slots」トグルスイッチを有効にします。

    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. Extractプロセスを開始または再開します。

    レプリケーションは、再初期化を必要とせずに、最後に処理された位置から続行されます。

  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でフェイルオーバー・サポートを構成する場合は、次のベスト・プラクティスを考慮してください。

制限事項

クラウド固有のガイドライン