11 Oracle GoldenGateのためのDB2 for z/OSトランザクション・ログの準備
内容は次のとおりです。
トランザクション・データを使用可能にする
Oracle GoldenGateは、アクティブ・ログとアーカイブ・ログからDB2トランザクション・データを抽出できます。次のガイドラインに従って、Extractがデータを取得できるようログを構成します。
変更の取得の有効化
次のステップに従って、CREATE TABLE
およびALTER TABLE
コマンドのDATA CAPTURE CHANGES
機能で提供される拡張形式でデータの変更が記録されるよう、DB2を構成します。この形式により、Oracle GoldenGateでは、更新文によって変更された行の変更前イメージと変更後イメージの全体を使用できます。
親トピック: トランザクション・データを使用可能にする
ログ・レコードへのアクセスの有効化
DB2 Monitor Trace Class 1をアクティブにし("TRACE(MONITOR) CLASS(1)
")、DB2でExtractによるアクティブ・ログの読取りができるようにします。Oracle GoldenGateは宛先を使用しないため、OPX
のデフォルトの宛先で十分です。
トレースを手動で開始する手順
-
TRACE
権限、または最低でもSYSOPR
権限を持つDB2ユーザーとしてDB2にログオンします。 -
次のコマンドを実行します。
start trace(monitor) class(1) scope(group)
DB2の起動時に自動的にトレースを開始する方法
次のいずれかの操作を実行します。
-
DSNTIPN
インストール・トレース・パネルでMONITOR TRACE
を"YES
"に設定します。 -
『DB2 UDB Installation Guide』に記載されているように、
DSNTIJUZ
インストール・ジョブで'DSN6SYSP MON=YES
'を設定します。
ノート:
ODBCプラン・エグゼキュータの1次許可IDまたはいずれかの2次許可IDにもMONITOR2
権限がある必要があります。
親トピック: トランザクション・データを使用可能にする
ログのサイズ指定および保持
表がDATA CAPTURE CHANGES
を使用して定義されている場合、DATA CAPTURE NONE
を使用して定義されている場合より多くのデータが記録されます。次のいずれかに該当する場合、アクティブ・ログとアーカイブ・ログの数とサイズを増やす必要があります。
-
アプリケーションで大量のDB2データを生成します。
-
アプリケーションであまりコミットは発生しません。
-
Extractを長時間停止することが想定されています。
-
ネットワークが安定していないか、遅いです。
ログ保持を制御するには、DSNTIJUZ
インストール・ジョブでDSN6LOGP MAXARCH
システム・パラメータを使用します。
Extractを停止した後または計画外の停止の後、Extractがチェックポイントから再度起動できるように十分なログ・データを保持します。Extractは、コミットされていない、最も古い作業ユニットの開始点を含むログと、それ以降のすべてのログにアクセスできることが必要です。
処理時にExtractで必要なデータがオンラインまたはアーカイブのログに保存されていなかった場合、次のいずれかの修正処理が必要になる可能性があります。
-
Extractを変更して、ログ・データが使用できる後の時点から取得します(さらにターゲットで起こり得るデータ損失を受け入れます)。
-
ソース表とターゲット表を再同期してから、Oracle GoldenGate環境を再開します。
ノート:
IBM社のドキュメントに、ログの読取りのパフォーマンスの改善に関する推奨が記載されています。特に、大規模なログ出力バッファ、大規模なアクティブ・ログおよびディスクへのアーカイブを使用できます。
親トピック: トランザクション・データを使用可能にする
テープ上のアーカイブ・ログの使用
Oracle GoldenGateはテープ上のDB2アーカイブ・ログを読み取ることはできますが、パフォーマンスは低下します。たとえば、DB2は、テープ上のアーカイブを1つのリカバリ・タスク用に確保します。その結果、リカバリが完了するまで、Extractは、表のリカバリに使用されるアーカイブ・テープを読み取ることができません。DFHSMまたは同様のツールを使用して、アーカイブ・ログをオンラインDASDストレージとテープとの間でシームレスに移動できますが、転送が完了するまでExtractは待機する必要があります。Extractの処理の遅れによってソース・データとターゲット・データとの間のレイテンシが増します。
親トピック: トランザクション・データを使用可能にする
ログ・フラッシュの制御
トランザクション・ログを読み取る際、Extractは、コミット・レコードを取得するまでトランザクションを処理しません。コミット・レコードが、一杯になっていないデータ・ブロックにある場合、さらにログ・アクティビティが生成されてブロックが一杯になるまでコミット・レコードは取得されません。Extractがログの読取りに使用するAPIでは、一杯になった物理データ・ブロックのみ取得されます。
コミットを含むブロックの取得の遅れによって、ソース・データとターゲット・データとの間でレイテンシが発生します。アプリケーションでブロックを一杯にするのに十分なログ・レコードが生成されない場合、Extractは、ブロックが一杯になって解放されるまで、SAVEPOINT
およびCOMMIT
文を発行して独自のログ・レコードを生成します。
データ共有グループでは、各APIコールによって、DB2がすべてのアクティブなメンバーのデータ・ブロックをフラッシュし、Extractがフラッシュを行う必要がなくなります。
Extractでフラッシュが行われないようにするには、ExtractのパラメータTRANLOGOPTIONS
のNOFLUSH
オプションを使用します。
親トピック: トランザクション・データを使用可能にする