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

DB2トランザクション・ロギングを構成してOracle GoldenGate Extractによるデータ取得をサポートする方法を説明します。

内容は次のとおりです。

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

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

6.1.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;
    

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

6.1.3 ログのサイズ指定および保持

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

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

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

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

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

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

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

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

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

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

注意:

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

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

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

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

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

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

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

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