Oracle GoldenGate for PostgreSQLのアップグレード

Oracle GoldenGate Microservices Architecture for PostgreSQLの最新バージョンにアップグレードするステップについて学習します。

PostgreSQLからのOracle GoldenGate CDCキャプチャ・サポートでは、WALから変更レコードを読み取るためにPostgreSQLデータベース上のレプリケーション・スロットを使用する必要があります。各CDC Extractで使用されるレプリケーション・スロット名は、Oracle GoldenGateのインストール・パスによって異なります。

アップグレード時までにExtractで変更レコードの取得が完了していなくても、アップグレード後に、既存のOracle GoldenGate環境にある同じExtractを使用して新しいOracle GoldenGate環境で変更レコードの取得を続行できます。ただし、これは、そのアップグレードに新しいOracle GoldenGateインストール・ディレクトリが使用されている場合はできなくなります。この作業を行うには、既存のOracle GoldenGateインストール・ディレクトリを使用する必要があります。

古いOracle GoldenGateバージョンをアップグレードするか、Oracle GoldenGate Classic ArchitectureからMicroservices Architectureに移行するには、次のステップを使用します:

ノート:

次のステップでは、例としてExtract名extnを使用します。
  1. 古い環境でOracle GoldenGate CDC Extractによって使用されていたレプリケーション・スロット名を取得します。古いレプリケーション・スロット名は、Extractレポート・ファイルから、またはINFO EXTRACTコマンドを実行することで取得できます。

    古いOracle GoldenGate環境にあるExtractレポート・ファイルから。次に、Extractレポート・ファイルにあるのスニペットの例を示します:
    2024-01-09 11:49:38  INFO    OGG-25376  Oracle GoldenGate capture 'EXTN' running with replication slot 'ext1_5d87a7db5e810943', slot type 'logical', plugin name
    as 'test_decoding' attached with database 'postgres' with slot restart LSN as '6/3CBFE2B8', flush LSN as '6/3CBFE2F0' and its current TXID as '7899713'.
    

    Extractレポート・ファイルにあるレプリケーション・スロット名を書き留めます。この例では、それはextn_5d87a7db5e810943です。

    次の例で示すように、古いOracle GoldenGate環境でGGSCIまたは管理クライアントからINFO EXTRACTコマンドを実行することもできます:
    GGSCI (phoenix96567 as postgres@pg12) 10> info extract extn
    出力:
    Extract    EXT1      Last Started 2024-01-09 11:49   Status RUNNING
    Checkpoint Lag       00:00:45 (updated 00:00:01 ago)
    Process ID           3640439
    VAM Read Checkpoint  2024-01-09 11:48:52.575833
    Replication Slot     extn_5d87a7db5e810943 is active with PID 3640450 in database postgres
    Slot Restart LSN     6/3CBFE2B8
    Slot Flush LSN       6/3CBFE2F0
    Current Log Position 6/3CBFE2F0
  2. 新しいOracle GoldenGate環境のOracle GoldenGate CDC Extractに関連のあるレプリケーション・スロット名を取得します。UNREGISTER EXTRACTコマンドを実行して新しいレプリケーション・スロット名を取得します:
    unregister extract extn
    出力:
    2024-01-09 11:43:37  INFO    OGG-25354  The replication slot 'extn_6ec0db7cc27c812' for group 'EXTN' does not exist in database 'postgres'.

    エラー・メッセージにあるレプリケーション・スロット名を書き留めます。この例では、それはextn_6ec0db7cc27c812です。

  3. 対応するソースPostgreSQLデータベースで次のSQL問合せを実行します(PSQLを使用可能)。
    SELECT * FROM pg_copy_logical_replication_slot('old-replication-slot', 'new-replication-slot');
    たとえば:
    SELECT * FROM pg_copy_logical_replication_slot('extn_5d87a7db5e810943', 'extn_6ec0db7cc27c812');
  4. Extractチェックポイント・ファイル、証跡ファイルおよびその他の構成ファイルを古いOracle GoldenGate環境から新しい環境にコピーしてください。

  5. new-replication-slotのLSN位置がold-replication-slotと同じであることを確認します。

  6. 古いOracle GoldenGate環境でUNREGISTER EXTRACT extract_nameコマンドを実行します。たとえば:
    UNREGISTER EXTRACT extn
  7. 新しいOracle GoldenGate環境でExtractを起動して、変更レコードの取得を再開します。