データベース取り込みとレプリケーション > データベース取り込みとレプリケーションソース - 準備と使用方法 > DB2 for z/OSソース
  

DB2 for z/OSソース

データベース取り込みとレプリケーションタスクでDb2 for z/OSソースを使用するには、最初にソースデータベースを準備し、使用に関する考慮事項を確認してください。

ソースの準備:

使用に関する考慮事項:

Db2 for z/OS CDCのストアドプロシージャのインストールと設定

増分ロードジョブのDb2 for z/OS CDC処理を実行するために、データベース取り込みとレプリケーションは、z/OSソースシステムで実行されるストアドプロシージャを提供します。ストアドプロシージャは、Db2 Instrumentation Facility Interface(IFI)を呼び出して、Db2ログから変更データを収集します。

z/OSシステム要件

開始する前に、Db2 for z/OSソースシステムが次の要件を満たしていることを確認してください。

ストアドプロシージャライブラリをインストールし、JCLをカスタマイズします

クライアントマシンで、次の手順を実行します。
  1. 1Db2 for zOS Database Ingestionコネクタが使用可能であることを確認します。
  2. Db2 for zOS Database Ingestionコネクタパッケージには、Db2 for z/OSストアドプロシージャライブラリが含まれています。コネクタがSecure Agent Group(ランタイム環境)に対して有効になっている場合、コネクタパッケージの.zipファイルがインストール場所のダウンロードフォルダにダウンロードされます。パッケージ名の形式はpackage-DB2ZMIです。nnnnnnnnnnは増分されたパッケージバージョン番号です。複数のパッケージバージョンが存在する場合は、最新のバージョンを使用してください。
  3. 2package-DB2ZMInnnnn.zipファイルを解凍します。ストアドプロシージャファイルは、パッケージ名の下のDb2WLMStoredProcedureフォルダに追加されます。
  4. 3FTPを使用して、Db2WLMStoredProcedureフォルダ内の#STPINSTファイルをz/OSシステム上のシーケンシャルファイル、PDS、またはPDSEに転送します。
  5. 注:
  6. 4FTPまたは別のファイル転送方法を使用して、次のファイルをそれぞれz/OSシステム上の別のデータセットに転送します。
  7. 注:
z/OSシステムでは、TSOを使用して送信(XMI)データセットをAPF許可ライブラリで受信し、ストアドプロシージャJCLメンバを編集します。また、DB2ユーザー特権を設定し、使用されている場合はリソース制限テーブルに行を追加します。
  1. 1DBRMLIB転送データセットを受信します。
  2. RECEIVE INDATASET(DBMI.ZOS.DBRMLIB.XMI)
    注:
  3. 2LOADLIB転送データセットを受信します。
  4. RECEIVE INDATASET(DBMI.ZOS.LOADLIB.XMI)
    手順1の注を参照してください。
  5. 3USERJCL転送データセットを受信します。
  6. RECEIVE INDATASET(DBMI.ZOS.USERJCL.XMI)
    手順1の注を参照してください。
  7. 4ご使用の環境のストアドプロシージャJCLを含む#STPINSTファイルをカスタマイズします。
  8. JCLは、データのDb2 IFIへの要求の結果を保持するストアドプロシージャとグローバル一時テーブルを作成します。また、ストアドプロシージャパッケージをバインドします。
    注:
  9. 5受信したUSERJCLデータセットのメンバのJCLをカスタマイズします。詳細については、「Db2 for z/OS USERJCLデータセット」を参照してください。
  10. 6ストアドプロシージャJCLジョブを実行する前に、必要なDB2権限が付与されていることを確認します。詳細については、DB2 for z/OSの権限を参照してください。
  11. 7データベース取り込みパッケージのDB2 DSNRLSTxxリソース制限テーブルに行を追加して、プロセッサリソースがストアドプロシージャの処理に十分であることを確認します。そうしないと、増分ロードジョブが異常終了する可能性があります。次のカラムを含む行を追加します。
  12. 次に、リソース制限テーブルへの変更を有効にするために、DB2 -START RLIMITコマンドを発行します。

Db2 for z/OS USERJCLデータセット

ダウンロードされたUSERJCLデータセットは区分データセット(PDS)または拡張区分データセット(PDSE)であり、Informatica提供のWLM Db2ストアドプロシージャの使用時に他の方法では容易に入手できない情報を収集するジョブを実行するためのJCLメンバが含まれています。
メンバJCLは、USERJCL PDSまたはPDSEで完全にカスタマイズできます。元のメンバが参照用にそのまま保持されるように、提供されたJCLメンバのコピーを別の名前で作成し、そのコピーをカスタマイズすることをお勧めします。
複数のDb2サブシステムに複数のストアドプロシージャをインストールする場合、インストールできるUSERJCLライブラリは1つだけで、そのライブラリにDb2サブシステムごとに合わせてカスタマイズしたメンバを作成できます。あるいは、特定のDb2サブシステム用に別のライブラリを作成することもできます。データベース取り込みとレプリケーションジョブに、Db2サブシステムの正しいライブラリおよびメンバ情報が含まれていることを確認してください。
USERJCL PDSまたはPDSEには、以下のメンバが含まれています。
LOGINVメンバ
LOGINVには、Db2ログインベントリリストを取得するジョブのJCLが含まれています。タスクウィザードで取り込みタスクの[増分ロード操作の当初の開始点]プロパティを[特定の日付と時刻]に設定した場合、インベントリリストを使用して、データベース取り込みとレプリケーションジョブの初回実行時または再開時にログ内の開始点が決定されます。ログインベントリリストはデータベース取り込みとレプリケーションに、開始RBAまたはLSNと終了RBAまたはLRSN、およびDb2サブシステムのすべてのアクティブログとアーカイブログの開始タイムスタンプと終了タイムスタンプを提供します。データベース取り込みとレプリケーションは、この情報を使用して適切なログアーカイブを選択し、要求された開始点を検索します。[増分ロード操作の当初の開始点]プロパティが[特定の日付と時刻]以外のオプションに設定されている場合は、USERJCLライブラリをインストールする必要はありません。
LOGINVメンバの内容:
//<USERID>I JOB 'LOG INVENTORY',MSGLEVEL=(1,1),MSGCLASS=X,
// NOTIFY=&SYSUID,CLASS=A,REGION=0M
//* -------------------------------------------------------
//*
//* PLEASE CHANGE DSN? TO THE DB2 SUBSYSTEM OF YOUR CHOICE.
//*
//* THIS JCL MEMBER CAN BE USED TO RUN A LOG INVENTORY
//* LIST. DBMI WILL REQUEST THIS IF A DBMI JOB IS TRYING TO
//* RETART USING TIME. THE LOG INVERNTORY GIVES DBMI THE
//* ABILITY TO CORRELATE RBA/LSRN TO ACTUAL LOG RESTART
//* POSITIONS. DBMI PARSES THE SYSPRINT OUTPUT TO GET THE
//* REQUIRED INFORMATION.
//*
//*
//* SUBSTITUTION TAGS
//* _________________
//*
//* SUBSTITUTION TAGS ARE USED TO INSERT DATA INTO THE JOB
//* BY DBMI BEFORE IT IS SUBMITTED. YOU MAY COPY THIS JCL
//* INTO ANOTHER MEMBER AND MODIFY ITS CONTENTS. SUBSTITUTION
//* TAGS MAY ALSO BE REMOVED AND HARD CODED FOR INDIVIDUAL
//* JOB NEEDS.
//*
//*
//* <USERID> WILL BE REPLACED WITH THE USER ID.
//*
//* -------------------------------------------------------
//LOGINV EXEC PGM=DSNJU004
//STEPLIB DD DISP=SHR,DSN=DSN?10.SDSNLOAD
// DD DISP=SHR,DSN=DSN?10.DSNC.RUNLIB.LOAD
//SYSUT1 DD DISP=SHR,DSN=DSN?.BSDS01
//SYSPRINT DD SYSOUT=*
//SYSSUMRY DD SYSOUT=*
//
注:
このJCLでは、データベース取り込みとレプリケーションは<USERID>をDb2 for zOS Database Ingestion接続プロパティで指定されたユーザーに置き換えます
USERJCLメンバジョブをサブミットし、サブミットされたジョブから出力を取得するために、データベース取り込みとレプリケーションは、必要に応じてDb2提供のストアドプロシージャをバッチで実行します。データベース取り込みとレプリケーションユーザーが、これらのストアドプロシージャを実行するために必要な特権を持っていることを確認します。Db2提供のプロシージャの詳細については、https://www.ibm.com/docs/en/db2-for-zos/12?topic=sql-procedures-that-are-supplied-db2を参照してください。
USERJCLメンバは、次のように処理されます。
  1. 1LOGINVメンバの場合、データベース取り込みとレプリケーションタスクウィザードの[ソース]ページで[増分ロード操作の当初の開始点]詳細プロパティが[特定の日付と時刻]に設定されている場合、データベース取り込みとレプリケーションは、ソースに次のカスタムプロパティが指定されているかどうかをチェックします。
  2. 2データベース取り込みとレプリケーションは、Db2提供のストアドプロシージャADMIN_DS_BROWSEを使用してLOGINVメンバを読み取ります。
  3. 3データベース取り込みとレプリケーションは、ジョブの実行に必要なタグを置き換えます。
  4. 4データベース取り込みとレプリケーションは、Db2提供のストアドプロシージャADMIN_SUBMIT_JOBを使用して、ジョブをDb2 for z/OSデータベースにサブミットします。
  5. 5データベース取り込みとレプリケーションは、Db2提供のストアドプロシージャADMIN_JOB_QUERYを使用して、サブミットされたジョブのステータスを照会します。
  6. 6ジョブが完了すると、データベース取り込みとレプリケーションは、Db2提供のストアドプロシージャADMIN_JOB_FETCHを使用して、ジョブ出力を取得します。

DB2 for z/OSの権限

Db2 for z/OSソースを持つデータベース取り込みとレプリケーションタスクをデプロイして実行するには、ソース接続で取り込みロードタイプに必要な特権を持つデータベース取り込みとレプリケーションユーザーを指定する必要があります。
初期ロード処理の特権
増分ロード処理の特権
増分ロードジョブの場合は、次の特権を付与します。
注:
これらを付与するために必要な権限がない場合は、SYSDBA権限以上の権限レベルを持つDB2管理者に発行を依頼してください。
注:
Db2ログ内のテーブルの変更データをストアドプロシージャで使用できるようにするには、ソーステーブルごとに次のSQLを発行します。
ALTER TABLE schema.table DATA CAPTURE CHANGES <--for each source table
COMMIT;
この文を発行するには、ALTER権限が必要です。ALTER権限がない場合は、Db2 DBAに、このSQLを発行するか、ALTER権限を付与するように依頼してください。詳細については、「Db2 DATA CAPTURE CHANGESの有効化」を参照してください。
z/OSでストアドプロシージャを実行するために必要な権限
ストアドプロシージャJCLジョブを実行する前に、次のDB2権限が付与されていることを確認します。
さらに、グローバル一時テーブルのJCLで指定されているスキーマおよびストアドプロシージャ名に対するINSERTおよびDELETE権限を付与します。
GRANT INSERT, DELETE ON schema.stored_procedure_name_RS_TBL TO user

Db2 DATA CAPTURE CHANGESの有効化

変更データのレプリケーションに必要な拡張形式でSQL変更イベントをログに記録するには、一部のシステムカタログテーブルとDb2ソーステーブルでDb2 DATA CAPTURE CHANGESを有効にする必要があります。

Db2 for z/OSソースの変更キャプチャメカニズム

データベース取り込みとレプリケーションは、z/OS上のDb2ソースから変更データをキャプチャしてそのデータをターゲットに適用するための、単一の変更キャプチャメカニズムとアーキテクチャを提供します。このアーキテクチャはマルチスレッド処理を使用して、データの収集と、データの解析およびターゲットが受け入れる形式への変換のパフォーマンスを最適化します。
Secure Agentは、Db2 z/OSソースシステムとは別に、LinuxまたはWindowsボックスで実行する必要があります。z/OSシステムとSecure Agentボックス間のネットワーク帯域幅は堅牢でなければなりません。Informaticaでは、数百ギガバイトまたは1ギガビット以上のログデータを処理できるネットワーク転送速度を推奨しています。Db2がCDC対象のログデータを生成する速度以上の速度でログデータをSecure Agentに配信できるほどのネットワーク転送速度ではない場合、データベース取り込みとレプリケーションジョブはタイムリーにデータをターゲットに提供できません。データスループットがSLAを満たしていない場合は、ハードウェアを変更して、z/OSシステムとSecure Agentボックス間のイーサネット帯域幅を増やすことを検討してください。
次の図は、Db2 for z/OS変更キャプチャコンポーネントとデータフローを示しています。
  1. 1Secure Agent配下のDBMI Agentサービスで実行されるマルチスレッドログコレクタは、Db2ログデータの複数の同時要求をDb2ストアドプロシージャに発行します。
  2. 各要求には、開始RBA、またはログがデータ共有環境にある場合は開始LRSNと、データベース取り込み用のCDC対象のテーブルのリストが含まれます。
    一連のログデータの処理中に、ログコレクタは次の一連のログデータを要求できます。
  3. 2Db2 Instrumentation Facility Interface(IFI)APIは、アクティブログとアーカイブログから、CDC対象の選択したソーステーブルのデータを抽出します。その後、IFIはデータを未加工のネイティブ形式で、z/OS Workload Manager(WLM)のInformatica Db2ストアドプロシージャに転送します。
  4. 3Db2ストアドプロシージャは、キャプチャされたデータとともにUOWをUOWマネージャに返します。
  5. 4UOWマネージャは、UOWをコミット順にログパーサーに送信します。
  6. 5マルチスレッドログパーサーは、コミットされたUOWからのDML変更を同時に解析します。結果は、ターゲットタイプが期待する形式の未加工のネイティブDb2ログデータです。
  7. 注:
    このリソース集約型のアクティビティはSecure Agentボックスで発生するため、z/OSシステムのCPU消費は最小限に抑えられます。
  8. 6CDCライターが、フォーマットされたデータをターゲットに適用します。