18 Extractの構成

この章では、PostgreSQLデータベースから初期ロードおよびトランザクション・データを取得するようにOracle GoldenGate Extractを構成する手順について説明します。

内容は次のとおりです。

Extractについて

Oracle GoldenGate for PostgreSQLには、作成できるExtractのタイプが2つあります。

初期ロードExtract

初期ロードExtractは、表からすべてのレコードを読み取ってEXTFILEまたはRMTFILEに書き込むために使用されます。初期ロードExtractは、ADD EXTRACTコマンドのSOURCEISTABLEオプションを使用して作成され、リカバリ用のチェックポイントは保持されません。

初期ロード・プロセスの詳細は、「正確なインスタンス化を使用したPostgreSQLソース・データベースの初期同期の構成」を参照してください。

チェンジ・データ・キャプチャのExtract

チェンジ・データ・キャプチャのExtractは、それが作成されるか、または先行書込みログに配置された時点からのトランザクション・データ変更を取得するために使用されます。

PostgreSQL用のOracle GoldenGate Extractプロセスでは、PostgreSQL test_decodingデータベース・プラグインから論理レコードを受信し、それをReplicatによるダウンストリーム消費のためにコミット順序で証跡ファイルに書き込みます。

Extractのデプロイメント・オプション

  • ローカル・デプロイメント: ローカル・デプロイメントの場合、ソース・データベースとOracle GoldenGateは同じサーバーにインストールされます。ローカル・デプロイメントでは、追加の考慮事項は必要ありません。

  • リモート・デプロイメント: リモート・デプロイメントの場合、ソース・データベースとOracle GoldenGateは個別のサーバーにインストールされます。リモート・デプロイメントは、PostgreSQL用のAzureやAmazon Aurora PostgreSQLなどのクラウド・データベースをサポートするために使用できる唯一のオプションです。

    リモート・デプロイメントの場合、データベース・サーバーとOracle GoldenGateサーバーの間のオペレーティング・システムのエンディアンは、WindowsとWindows、LinuxとLinux、WindowsとLinuxなどのように、同じである必要があります。

    Oracle GoldenGateサーバーのサーバー時間とタイムゾーンは、データベース・サーバーのものと同期されている必要があります。このことが可能でない場合は、Extractが作成または変更されたとき、その配置がLSNによって実行される必要があります。

    リモート取得のユースケースでは、SQLEXECを使用すると、レイテンシが増加することがあります。これは、SQLEXEC操作は、Extractによって処理されるレコードごとに順次実行する必要があるためです。SQLEXECを必要とする特別なフィルタリングがリモート・ハブExtractで実行され、パフォーマンスへの影響が大きすぎる場合は、Extractプロセスをソース・データベースに近づけることが必要になる場合があります。

    リモート・デプロイメントではネットワーク・レイテンシが低いことが重要となり、Oracle GoldenGateサーバーとソース・データベース・サーバーの間のネットワーク・レイテンシを1ミリ秒未満にすることをお薦めします。

チェンジ・データ・キャプチャのExtractの作成の前提条件

Oracle GoldenGate for PostgreSQLのインストールの前提条件を確認します。

データベース接続が正しく構成されていることを確認します。詳細は、「データベース接続の構成」を参照してください。

PostgreSQLのExtractの登録

PostgreSQLのExtractは、データベースに登録して、予約済レプリケーション・スロットを付与する必要があります。レプリケーション・スロットは、データベース構成設定max_replication_slotsを介して割り当てられ、データベース構成の説明に従って構成できます。

次の手順に従って、Extractを登録します。Extractの登録は、Extractを作成する前に実行する必要があります。詳細は、Oracle GoldenGateコマンド・ライン・インタフェース・リファレンスREGISTER EXTRACTを参照してください。

内容は次のとおりです。

PostgreSQL用のMicroservices ArchitectureへのExtractの登録
  1. 管理クライアントを使用してデプロイメントに接続してから、ソース・データベースの資格証明別名に接続します。
    OGG> CONNECT https://remotehost:srvmgrport DEPLOYMENT
              deployment_name AS deployment_user PASSWORD deployment_password
    
    OGG (https://remotehost:16000postgresql_source)> DBLOGIN USERIDALIAS alias
  2. Extractを登録します。これにより、Extractのレプリケーション・スロットが内部的に作成されます。Extract名は、英数字8文字を超えることはできません。
    OGG (https://remotehost:16000postgresql_source)> REGISTER EXTRACT extname

Oracle GoldenGate MA WebインタフェースからExtractを登録することもできます。Oracle GoldenGate Microservicesを使用してのステップ・バイ・ステップ・データ・レプリケーション・ガイドのExtractの追加方法を参照してください。

PostgreSQL用のClassic ArchitectureへのExtractの登録

次の手順に従って、Extractを登録します。Extractの登録は、Extractを作成する前に実行する必要があります。詳細は、『Oracle GoldenGateコマンド・ライン・インタフェース・リファレンス』ガイドのREGISTER EXTRACTを参照してください。

  1. GGSCIを使用して、ソース・データベースのDSNに接続します。
    GGSCI> DBLOGIN SOURCEDB dsn USERIDALIAS alias
  2. GGSCIコマンドを使用してExtractを登録します。このコマンドは、レプリケーション・スロットを内部的に作成します。Extract名は、英数字8文字を超えることはできません。
    GGSCI> REGISTER EXTRACT extname

チェンジ・データ・キャプチャのExtractの作成

次のステップでは、ソースPostgreSQLデータベースからトランザクション・データを取得するようにCDC Extractを構成します。

ノート:

通常、データベースごとに1つのExtractで十分ですが、レプリケーション・スロットが使用可能な場合は複数のExtractが許可されます。
  1. ソース・システムのGGSCI、Admin ClientまたはREST APIクライアントで、Extractパラメータ・ファイルを作成します。
    EDIT PARAMS extname

    この例では、extnameはプライマリExtractの名前であり、前のステップでデータベースに登録されたExtractの名前と一致しています。

    Oracle GoldenGate Microservicesを使用してこのタスクを実行する方法の詳細は、Oracle GoldenGate Microservicesを使用してのステップ・バイ・ステップ・データ・レプリケーション・ガイドのExtractの追加方法を参照してください。

  2. 次に示す順序でExtractパラメータを入力します。パラメータ文ごとに新しい行を開始します。

    Microservicesインストール用のExtractの基本パラメータの例は、次のとおりです。
    EXTRACT extname
    SOURCEDB dsn_name USERIDALIAS alias
    EXTTRAIL ep
    GETTRUNCATES
    TABLE schema.*;
    Classic Architectureインストール用のExtractの基本パラメータの例は、次のとおりです。
    EXTRACT extname
    SOURCEDB dsn_name USERIDALIAS alias
    EXTTRAIL ./dirdat/ep
    GETTRUNCATES
    TABLE schema.object;
    パラメータ 説明

    EXTRACT extname

    extnameはExtractの名前で、長さが英数字8文字を超えることはできません。詳細は、Oracle GoldenGateリファレンスextractを参照してください。

    SOURCEDB dsn_name

    データベース接続DSNの名前を指定します。

    USERIDALIAS alias

    Extractに割り当てられるユーザーのデータベース・ログイン資格証明の別名を指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください。

    EXTTRAIL trailname

    プライマリExtractによって取得されたデータが書き込まれる2文字のローカル証跡を指定します。

    GETTRUNCATES

    オプションのパラメータですが、切捨て操作を取得するために必要です。

    TABLE schema.object;

    または

    TABLE schema.*;

    データをキャプチャするデータベース・オブジェクトを指定します。
    • TABLEは、表または表のワイルドカード・セットを指定します。

    • schemaは、スキーマ名またはスキーマのワイルドカード・セットです。

    • objectは、表または順序名、またはこれらのオブジェクトのワイルドカード・セットです。

    • *は、スキーマ内のすべての表に対するワイルドカードです。

    パラメータ文はセミコロンで終了します。

    名前をワイルドカード指定から除外するには、必要に応じて、SCHEMAEXCLUDETABLEEXCLUDEおよびEXCLUDEWILDCARDOBJECTSONLYパラメータを使用します。

    ノート:

    取得する表のスキーマがGLOBALSファイルのGGSCHEMAにあるスキーマと同じ場合(推奨されません)、TABLE文でschema.*を使用することはできません。
  3. 構成に推奨されるオプションのExtractパラメータを入力します。このファイルは、EDIT PARAMSコマンドを使用して処理を開始する前にいつでも編集できます。

  4. 保存してファイルを閉じます。

  5. Extractとそれに関連付けられた証跡ファイルを追加します。

    管理クライアントを使用するMicroservices Architectureの場合は、次のようになります。
    OGG (https://remotehost:16000 postgresql_source)> ADD EXTRACT extname, TRANLOG, BEGIN NOW
    OGG (https://remotehost:16000 postgresql_source)> ADD EXTTRAIL ep, EXTRACT extname
    GGSCIを使用するClassic Architectureの場合は、次のようになります。
    GGSCI> ADD EXTRACT extname, TRANLOG, BEGIN NOW
    GGSCI> ADD EXTTRAIL ./dirdat/ep, EXTRACT extname
  6. Extractを起動します。