19 正確なインスタンス化を使用したPostgreSQLソース・データベースの初期同期の構成

ソースPostgreSQLデータベースからOracle GoldenGateターゲットへのデータ同期は、正確なインスタンス化を使用するオプションの方法で実現できます。この方法は、Oracle GoldenGate 21c (21.8.0)で導入されました。

正確なインスタンス化には、ターゲットReplicatでのコリジョン処理を必要としないという利点があります。これは、フラット・ファイルなど、コリジョン処理をサポートしていないターゲットにとって重要です。この方法は、データベース・スナップショットを使用して、初期ロードExtractの出力をチェンジ・データ・キャプチャのExtractの開始位置と同期します。このスナップショットは初期ロードExtractによって管理されるため、複数の初期ロードExtractで同じスナップショットを使用することはできません。したがって、この方法は、複数の初期ロードExtractを使用してワークロードをパラレル化する場合はサポートされません。

次の例では、Microservices Architectureで管理クライアントを使用します。Oracle GoldenGateをよく理解し、必要なすべての前提条件を満たしてソース・データベースとターゲット・データベースを正しく設定していることを想定しています。これらのステップには、少なくともOracle GoldenGate 21c (21.8.0)以上が必要です。

正確なインスタンス化方法を使用してエンドツーエンドの初期ロードおよび同期プロセスを設定するには、次のステップを実行します。

  1. チェンジ・データ・キャプチャ(CDC)のExtractをソースPostgreSQLデータベースに登録します。

    DBLOGIN USERIDALIAS src_alias
    REGISTER EXTRACT extecdc

    この例では、extecdcがExtract名です。Classic Architectureインストールの場合は、USERIDALIASまたはUSERIDPASSWORDを指定したDBLOGIN SOURCEDBコマンドを使用します。

  2. 初期ロードExtractを作成します。
    ADD EXTRACT extinit, SOURCEISTABLE
    EDIT PARAMS extinit
    初期ロードExtractパラメータ・ファイルには、INITIALLOADOPTIONS USESNAPSHOTパラメータが含まれている必要があります。たとえば:
    EXTRACT extinit
    INITIALLOADOPTIONS USESNAPSHOT
    SOURCEDB USERIDALIAS src_alias
    EXTFILE ./dirdat/ei, MEGABYTES 500, PURGE
    TABLE public.*;

    このパラメータとUSESNAPSHOTオプションの使用方法は、INITIALLOADOPTIONSを参照してください。

  3. 初期ロードExtractを起動します。
    START EXTRACT extinit
  4. 初期ロードExtractが完了して停止したら、レポート・ファイルを確認して、CDC Extractで使用される位置指定LSNを決定します。

    たとえば、次の出力では、CDC Extractで使用される位置指定LSNは'0/173F770'になります。
    INFO    OGG-100001 A consistent point is
    established in database 'tpcc' using replication slot ogg_initx_1234 at LSN 0/173F770
    and snapshot name '00000003-00000026-1'.
    INFO    OGG-100002 Create or position the CDC
    extract to LSN 0/173F770. Example: ADD EXTRACT <cdc-extract> TRANLOG LSN 0/173F770
    or ALTER EXTRACT <cdc-extract> LSN 0/173F770.
  5. 初期ロードExtractから証跡を読み取る初期ロードReplicatを作成して起動します。

    DBLOGIN USERIDALIAS tgt_alias
    ADD CHECKTPOINTTABLE ggs.checkpoint
    ADD REPLICAT repinit, EXTTRAIL ./dirdat/ei, CHECKPOINTTABLE ggs.ggcheckpoint
    START REPLICAT repinit
    初期ロードReplicatパラメータ・ファイルの例を次に示します。
    REPLICAT repinit
    TARGETDB USERIDALIAS tgt_alias
    END RUNTIME
    BATCHSQL
    MAP public.*, TARGET public.*;
  6. 初期ロードExtractレポート・ファイルで参照される一貫性のあるLSN値を使用して、CDC Extract (extecdc)を追加して起動します。
    ADD EXTRACT extecdc, TRANLOG, LSN 0/173F770
    ADD EXTTRAIL ea, EXTRACT extecdc
    START EXTRACT extecdc
    CDC Extractパラメータ・ファイルの例を次に示します。
    EXTRACT extecdc
    SOURCEDB USERIDALIAS src_alias
    EXTTRAIL ./dirdat/ea
    TABLE public.*;
  7. 初期ロードReplicatが完了して停止したら、CDC Extractから証跡を読み取るCDC Replicatを追加して起動します。

    ADD REPLICAT repecdc, EXTTRAIL ./dirdat/ea, CHECKPOINTTABLE ggs.ggcheckpoint
    START REPLICAT repecdc
  8. CDC ExtractとCDC Replicatの両方のラグを監視し、両方が0秒に近い場合は、ソース・データベースからターゲット・データベースへのデータ・ストリームはリアルタイムに近くなります。