17 Extractの構成
この章では、PostgreSQLデータベースから初期ロード・データおよびトランザクション・データをキャプチャするようにOracle GoldenGateキャプチャ・プロセスを構成する手順について説明します。
内容は次のとおりです。
Extractについて
Oracle GoldenGate for PostgreSQLでは、2つのタイプのExtractを作成できます。
初期ロードExtract
初期ロードExtractは、表からすべてのレコードを読み取り、それらをEXTFILE
またはRMTFILE
に書き込むために使用されます。初期ロードExtractは、ADD EXTRACT
コマンドのSOURCEISTABLE
オプションを指定して作成され、リカバリ用のチェックポイントを保持しません。
初期ロード・プロセスの詳細は、Oracle GoldenGateの管理の初期ロードによるOracle GoldenGateのインスタンス化を参照してください。
親トピック: Extractについて
チェンジ・データ・キャプチャExtract
チェンジ・データ・キャプチャExtractは、トランザクション・データの作成時点または事前書込みログへの記録の時点からの変更内容をキャプチャするために使用されます。
PostgreSQL用のOracle GoldenGate Extractプロセスは、PostgreSQLのtest_decoding
データベース・プラグインから論理レコードを受け取り、それらをコミット順に証跡ファイルに書き込んでReplicatによってダウンストリームで使用できるようにします。
親トピック: Extractについて
Extractのデプロイメント・オプション
-
ローカル・デプロイメント: ローカル・デプロイメントの場合、ソース・データベースとOracle GoldenGateは同じサーバーにインストールされます。ローカル・デプロイメントの場合、その他の考慮事項は必要ありません。
-
リモート・デプロイメント: リモート・デプロイメントの場合、ソース・データベースとOracle GoldenGateは別々のサーバーにインストールされます。リモート・デプロイメントは、クラウド・データベース(Azure for PostgreSQLやAmazon Aurora PostgreSQLなど)をサポートするために使用できる唯一のオプションです。
リモート・デプロイメントの場合は、データベース・サーバーとOracle GoldenGateサーバーの間のオペレーティング・システムのエンディアンネスが同じである必要があります。
Oracle GoldenGateサーバーのサーバー時間とタイムゾーンをデータベース・サーバーと同期する必要があります。これができない場合は、Extractの作成時または変更時の位置指定をLSNによって実行する必要があります。
リモート・キャプチャのユースケースでは、
SQLEXEC
を使用するとさらにレイテンシが発生する場合があります。これは、Extractによって処理されるレコードごとに、SQLEXEC
操作を順次実行する必要があるためです。SQLEXEC
を必要とする特別なフィルタリングがリモートのハブExtractで実行され、パフォーマンスへの影響が大きすぎる場合は、Extractプロセスをソース・データベースに近づける必要があることがあります。リモート・デプロイメントでは、ネットワーク・レイテンシが低いことが重要であるため、Oracle GoldenGateサーバーとソース・データベース・サーバーの間のネットワーク・レイテンシは1ミリ秒未満にすることをお薦めします。
親トピック: Extractについて
Extractの作成の前提条件
Oracle GoldenGate for PostgreSQLのインストールを読み、DataDirectドライバ(オペレーティング・システムに応じて異なる)が正しくインストールされていることを確認します。
リモートにインストールされている場合は、データベース・サーバーにあるPostgreSQLクライアント認証構成ファイル$PGDATA/pg_hba.conf
において、Oracle GoldenGateサーバーからの接続を許可するように構成されていることを確認します。詳細は、https://www.postgresql.org/docs/13/auth-pg-hba-conf.htmlを参照してください。
親トピック: Extractの構成
PostgreSQL用のExtractの登録
PostgreSQL用のExtractをデータベースに登録し、それに予約済レプリケーション・スロットを与える必要があります。レプリケーション・スロットは、データベース構成設定 max_replication_slots
を介して割り当てます。また、このドキュメントのデータベース構成のトピック内の説明に従って構成できます。
次の手順に従ってExtractを登録します。Extractの登録は、Extractを作成する前に実行する必要があります。詳細は、Oracle GoldenGateコマンド・ライン・インタフェース・リファレンスガイドのREGISTER EXTRACTを参照してください。
-
GGSCIを使用してソース・データベースのDSNに接続します。
GGSCI> DBLOGIN SOURCEDB dsn USERIDALIAS alias
-
GGSCIコマンドを使用してExtractを登録します。このコマンドでは、レプリケーション・スロットが内部的に作成されます。Extractの名前は、8文字以内の英数字にする必要があります。
GGSCI> REGISTER EXTRACT extname
親トピック: Extractの作成の前提条件
チェンジ・データ・キャプチャExtractの作成
ノート:
通常はデータベースごとに1つのExtractで十分ですが、複数のレプリケーション・スロットを使用可能な場合は複数のExtractでもかまいません。-
GGSCIで、Extractパラメータ・ファイルを作成します。
EDIT PARAMS extname
このサンプルでは、
extname
はプライマリExtractの名前であり、前のステップでデータベースに登録したExtractの名前と同じです。 -
次に示す順序でExtractパラメータを入力します。パラメータ文ごとに新しい行を開始します。
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
2文字のローカル証跡を指定します。プライマリExtractによって、キャプチャされたデータがこれに書き込まれます。
GETTRUNCATES
オプションのパラメータですが、切捨て操作をキャプチャするには必要です。
TABLE schema.object;
または
TABLE schema.*;
データをキャプチャするデータベース・オブジェクトを指定します。-
TABLE
は、表または表のワイルドカード・セットを指定します。 -
schema
は、スキーマ名またはスキーマのワイルドカード・セットです。 -
object
は、表または順序名、またはこれらのオブジェクトのワイルドカード・セットです。 -
*
は、スキーマ内のすべての表を示すワイルドカードです。
パラメータ文はセミコロンで終了します。
ある名前をワイルドカード指定から除外するには、必要に応じて、SCHEMAEXCLUDE
、TABLEEXCLUDE
およびEXCLUDEWILDCARDOBJECTSONLY
パラメータを使用します。ノート:
キャプチャする表のスキーマがGLOBALSファイルのGGSCHEMA
内のスキーマと同じである場合(これはお薦めしません)、TABLE
文でschema.*
は使用できません。 -
-
構成に推奨されるオプションのExtractパラメータを入力します。このファイルは、
EDIT PARAMS
コマンドを使用して、処理を開始する前の任意の時点で編集できます。 -
ファイルを保存して閉じます。
-
Extractとそれに関連する証跡ファイルを追加します。
GGSCI> ADD EXTRACT extname, TRANLOG, BEGIN NOW GGSCI> ADD EXTTRAIL ./dirdat/ep, EXTRACT extname
-
Extractを起動します。
親トピック: Extractの構成
ExtractのためのDDLの変更
-
変更が必要な表に対するアプリケーション・データを一時停止または停止します。
-
DDLの変更を行う前に、Extractですべてのトランザクションを処理することを確認します。イベント・マーカー表は、トランザクションの完全な完了を保証するのに役立ちます。
-
Extractを停止します。
-
ソースで、DDL変更を実行する必要がある表に対して
DELTE TRANDATA
を実行します。 -
ALTER TABLE
文を実行し、表に対して列を追加または削除します。 -
ソースで同じ表に対してtrandata (
ADD TRANDATA
)を有効にします。 -
Extractを起動します。
親トピック: Extractの構成