ヘッダーをスキップ
Oracle® GoldenGate DB2 z/OSのためのOracle GoldenGateのインストールおよび構成
12c (12.1.2)
E52451-01
  目次へ移動
目次

前
 
次
 

4 Oracle GoldenGateのためのDB2 for z/OSトランザクション・ログの準備

この章には、DB2トランザクション・ロギングを構成してOracle GoldenGate Extractによるデータ取得をサポートするために必要な情報が含まれます。

4.1 ブートストラップ・データ・セットの指定

ExtractプロセスはBSDSを使用して、非データ共有環境内のトランザクション・ログでの最初の位置を見つけます。Extractグループを作成する際、BSDSを指定します。BSDSは、Extractプロセスの接続先のDB2サブシステムのBSDSである必要があります。Oracle GoldenGateは、BSDSの指定の妥当性はチェックしません。

4.2 トランザクション・データを使用可能にする

Oracle GoldenGateは、アクティブ・ログとアーカイブ・ログからDB2トランザクション・データを抽出できます。次のガイドラインに従って、Extractがデータを取得できるようログを構成します。

変更の取得の有効化

ログ・レコードへのアクセスの有効化

ログのサイズ設定と保持

テープ上のアーカイブ・ログの使用

ログ・フラッシュの制御

4.2.1 変更の取得の有効化

次の手順に従って、CREATE TABLEおよびALTER TABLEコマンドのDATA CAPTURE CHANGES機能で提供される拡張形式でデータの変更が記録されるよう、DB2を構成します。この形式により、Oracle GoldenGateでは、更新文によって変更された行の変更前イメージと変更後イメージの全体を使用できます。

  1. Oracle GoldenGateディレクトリからGGSCIを実行します。

  2. ALTER TABLE権限を持つユーザーとしてGGSCIからDB2にログオンします。

    DBLOGIN SOURCEDB DSN, USERID user[, PASSWORD password][, encryption_options]
    
  3. 次のコマンドを発行します。tableは表の完全修飾名です。ワイルドカードを使用して複数の表の名前を指定できますが、所有者名には使用できません。

    ADD TRANDATA table
    

    デフォルトでは、ADD TRANDATAによって次のコマンドが発行されます。

    ALTER TABLE name DATA CAPTURE CHANGES;
    

4.2.2 ログ・レコードへのアクセスの有効化

DB2 Monitor Trace Class 1をアクティブにし("TRACE(MONITOR) CLASS(1)")、DB2でExtractによるアクティブ・ログの読取りができるようにします。Oracle GoldenGateは宛先を使用しないため、OPXのデフォルトの宛先で十分です。

トレースを手動で開始する手順

  1. TRACE権限、または最低でもSYSOPR権限を持つDB2ユーザーとしてDB2にログオンします。

  2. 次のコマンドを発行します。

    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権限がある必要があります。


4.2.3 ログのサイズ設定と保持

表がDATA CAPTURE CHANGESを使用して定義されている場合、DATA CAPTURE NONEを使用して定義されている場合より多くのデータが記録されます。次のいずれかに該当する場合、アクティブ・ログとアーカイブ・ログの数とサイズを増やす必要があります。

  • アプリケーションで大量のDB2データを生成します。

  • アプリケーションであまりコミットは発生しません。

  • Extractを長時間停止することが想定されています。

  • ネットワークが安定していないか、遅いです。

ログ保持を制御するには、DSNTIJUZインストール・ジョブでDSN6LOGP MAXARCHシステム・パラメータを使用します。

Extractを停止した後または計画外の停止の後、Extractがチェックポイントから再度起動できるように十分なログ・データを保持します。Extractは、コミットされていない最も古い作業単位の開始点を含むログ、およびそれ以降のすべてのログにアクセスできる必要があります。

処理時にExtractで必要なデータがオンラインまたはアーカイブのログに保存されていなかった場合、次のいずれかの修正処理が必要になる可能性があります。

  • Extractを変更して、ログ・データが使用できる後の時点から取得します(さらにターゲットで起こり得るデータ損失を受け入れます)。

  • ソース表とターゲット表を再同期してから、Oracle GoldenGate環境を再開します。


注意:

IBM社のドキュメントに、ログの読取りのパフォーマンスの改善に関する推奨が記載されています。特に、大規模なログ出力バッファ、大規模なアクティブ・ログおよびディスクへのアーカイブを使用できます。


4.2.4 テープ上のアーカイブ・ログの使用

Oracle GoldenGateはテープ上のDB2アーカイブ・ログを読み取ることはできますが、パフォーマンスは低下します。たとえば、DB2は、テープ上のアーカイブを1つのリカバリ・タスク用に確保します。その結果、リカバリが完了するまで、Extractは、表のリカバリに使用されるアーカイブ・テープを読み取ることができません。DFHSMまたは同様のツールを使用して、アーカイブ・ログをオンラインDASDストレージとテープとの間でシームレスに移動できますが、転送が完了するまでExtractは待機する必要があります。Extractの処理の遅れによってソース・データとターゲット・データとの間のレイテンシが増します。

4.2.5 ログ・フラッシュの制御

トランザクション・ログを読み取る際、Extractは、コミット・レコードを取得するまでトランザクションを処理しません。コミット・レコードが、一杯になっていないデータ・ブロックにある場合、さらにログ・アクティビティが生成されてブロックが一杯になるまでコミット・レコードは取得されません。Extractがログの読取りに使用するAPIでは、一杯になった物理データ・ブロックのみ取得されます。

コミットを含むブロックの取得の遅れによって、ソース・データとターゲット・データとの間でレイテンシが発生します。アプリケーションでブロックを一杯にするのに十分なログ・レコードが生成されない場合、Extractは、ブロックが一杯になって解放されるまで、SAVEPOINTおよびCOMMIT文を発行して独自のログ・レコードを生成します。

データ共有グループでは、各APIコールによって、DB2がすべてのアクティブなメンバーのデータ・ブロックをフラッシュし、Extractがフラッシュを行う必要がなくなります。

Extractでフラッシュが行われないようにするには、ExtractのパラメータTRANLOGOPTIONSNOFLUSHオプションを使用します。