データベース構成
Oracle GoldenGate for Db2 z/OSのデータベース構成設定について学習します。Oracle GoldenGateにはデータベース設定が必要です。
Db2 z/OSでのExtractコンポーネントのインストール
Oracle GoldenGateのDb2 z/OS Extractでは、SQLオブジェクトを使用してDb2ログにアクセスし、それを読み取ります。Oracle GoldenGate Db2 z/OSオブジェクトには、最小ハードウェア・プラットフォームとしてzEC12、最小オペレーティング・システム・リリースとして2.4、最小Db2リリースとして12.1が必要です。コンポーネントは、実行可能ロード・モジュール、SQLストアド・プロシージャおよびファンクション、およびストアード・プロシージャを介してコールされる外部プログラムで構成されます。次のコンポーネントがあります。
-
外部認可プログラムには、次のものが含まれます。
-
oggib001– 初期化およびユーティリティ・プログラム -
oggrb001– ログ読取りプログラム機能 -
oggmt001– ECSAおよび64ビット・メモリーを監視するスタンドアロン・プログラム -
oggjt001–oggib001プログラムから実行されるoggmt001起動JCLのセットアップ・プログラム -
oggfr001–DBAがOracle Supportのガイダンスで使用するユーティリティ
-
-
SQLストアド・プロシージャおよびファンクション・テンプレートは、
OGGINITBおよびOGGREADB SQLを含むSQLスクリプトzOS_OGG_Setup_Template.sqlに含まれています。 -
JCLプロシージャ、
oggtask.jcl
ノート: SQLおよびJCL名の値の外部名はデフォルトであり、編集および更新できます。この処理については、以降の項で説明します。
Db2 z/OS Extractのレプリケーション・プロセスの図では、Db2 z/OS Extractとそのメインフレーム・コンポーネントのレプリケート・プロセスを示しています。
図1: Db2 z/OS Extractのレプリケーション・プロセス

このプロセスは、上の図に示すように、数字1から9を使用して開始および実行されます。これらのステップを次に示します。
-
Extractは、インストール時に作成されたパラメータ・ファイルから、JCLパラメータなどのパラメータを読み取ります。
-
Extractは起動情報をレポートし、証跡ファイルの書込みを準備します。
-
ODBCは、Db2データベースから情報を収集し、レプリケーションを開始するために使用されます。
-
OGGINITBSQLストアド・プロシージャでは、共有メモリーの準備と、レプリケーションに必要なその他のデータの収集が開始されます。 -
SQLストアド・プロシージャによってコールされる
OGGIB001外部プログラムで、OGGJT001ジョブ設定プログラムを使用してメモリー監視タスクが開始されます。 -
OGGMT001メモリー・モニター・タスクにより、ECSAおよび64ビットの共有メモリーの監視が開始されます。 -
OGGREADBSQL関数により、外部プログラムOGGRB001がコールされます。 -
OGGRB001外部プログラムで、Db2ログ読取りプログラムを繰り返してコールし、結果セット(1対多のログ・レコード・バッファがExtractで返される)を作成します。 -
ログ・レコードの結果セットが完了すると、Extractへの結果セットの送信後に
OGGRB001が終了します。
Extractは、停止または異常終了するまでステップ7から9を繰り返します。メモリー・タスクの起動に失敗すると、OGGIB001プログラムはJCLエラーまたは設定の問題があったことを示すフラグを返し、Extractはそのメモリーの管理を開始します。メモリー・タスクが正常に開始されると、メモリー・タスクによって48バイトのECSSA共有メモリー内のフィールドの変更が繰り返しテストします。Extractのなんらかの理由で終了すると、これらのフィールドは変更されなくなります。その時点で、Extractまたはネットワークが低速な場合は、メモリー・マネージャが待機し、構成された時間制限をすぎるとメモリーを解放してから停止します。
Oracle GoldenGate for Db2 z/OSのExtractに必要なコンポーネントをインストールするには:
-
ライブラリ(PDSE)がDb2 z/OSシステムに存在し、このライブラリが承認されたライブラリ・リストに含まれていることを確認します。このライブラリは、Oracle GoldenGateの外部プログラム・オブジェクトが配置される場所です。
-
APF承認のWLMプロシージャが、前述のステップのPDSEを参照していることを確認します。WLM環境の
NUMTCB値は、ストアド・プロシージャの場合、10から40にすることをお薦めします。NUMTCB値は、データベースに対して同時に実行されているExtractの最大数および各Extractに必要なスループットに依存します。NUMTCBの設定に柔軟性を持つ必要がある場合、WLMの起動JCLで指定します(ただし、作成パネルでは設定しないでください)。 -
WLMアプリケーション環境およびストアド・プロシージャの作成のためのセキュリティを設定するには、次の手順を実行します。
-
(オプション)ストアド・プロシージャを実行できるWLM確立アドレス空間を指定します。このステップを完了しないと、どのWLM確立アドレス空間もストアド・プロシージャを実行できます。
-
特定のWLMアドレス空間にプロシージャを作成するために、ユーザーにアクセス権を付与します。
-
特定のスキーマにプロシージャを作成するために、ユーザーにアクセス権を付与します。該当するスキーマのために
CREATINオプションでGRANT文を使用します。 -
特定のコレクションにプロシージャのパッケージを作成するために、ユーザーにアクセス権を付与します。該当するコレクションのために
CREATEオプションを指定してGRANT文を使用します。 -
アクセス権を付与してWLM環境を該当するユーザーに対してリフレッシュします。
-
適切なユーザーにRACF権限を追加し、WLMプロシージャでメモリー・マネージャ・ジョブを開始できるようにします。
-
-
WLM起動JCLプロシージャの実行に使用するIDに、RRSAFを使用する権限があることを確認します。Db2 WLMアドレス空間に1つが起動するたびに、RRSAFを使用してDb2にアタッチします。Db2 12 for z/OSインストレーションおよび移行のガイドを参照してください。
-
Oracle GoldenGate for Db2 z/OSのLinuxまたはUNIXインストールでは、
zOSutils.zipというOracle GoldenGateインストール・ディレクトリ(zOSPrograms.zipというファイルを含む)にZIPファイルがあります。UnzipzOSPrograms.ziptozOSPrograms.tarand copyzOSPrograms.tarin binary mode to your Db2 z/OS system into an HFS directory. -
USSまたはOMVSでDb2 z/OSシステムで、ディレクトリは
zOSPrograms.tarを含むディレクトリに変更します。 -
tar -xovf zOSPrograms.tarコマンドを使用して、オブジェクトをリストアします。 -
オブジェクトを承認されたPDSEにコピーします。
cp -X ogg[irmj][abt][0-9]* "//'authorized_PDSE_name'"を使用します(authorized_PDSE_nameは、Oracle GoldenGateオブジェクト用のAPF承認PDSEの名前です)。このコマンドを使用すると、デフォルトの名前でオブジェクトがインストールされます。ノート:このコマンドは、コピー先は、二重引用符、スラッシュおよび一重引用符、承認されたPDSE名、一重引用、二重引用符で示しています。
-Xは大文字のXであり、小文字のXではありません。 -
異なる名前でスクリプトがインストールされると、システム・プロトコルに準拠したり、複数のバージョンのOracle GoldenGateを実行したりすることができます。異なる名前でスクリプトをインストールするには、PDSEにコピーする前に、プログラムの名前を変更するシェル・スクリプトを作成することをお薦めします。シェル・スクリプトの例は、次のコード・スニペットに示されています。
#!/bin/bash # Copy new programs renaming them to version 21.12 names. cp oggib001 oggi2112 cp oggrb001 oggr2112 cp oggmt001 oggm2112 cp oggjt001 oggj2112 cp -X oggi2112 "//'SYS4.WLMDSNA.AUTHLOAD'" cp -X oggr2112 "//'SYS4.WLMDSNA.AUTHLOAD'" cp -X oggm2112 "//'SYS4.WLMDSNA.AUTHLOAD'" cp -X oggj2112 "//'SYS4.WLMDSNA.AUTHLOAD'"スクリプトは、
chmod +x scriptnameコマンドを使用して実行できます。このスクリプトは、新しいバージョンのためにコピーして再利用できます。 -
Oracle GoldenGateがExtractオブジェクトをコールできるように、選択するSQLツールを使用してSQLプロシージャを作成する必要があります。Oracle GoldenGateストアド・プロシージャは、レプリケーションのために使用するユーザーのみに権限を付与する必要があります。
Oracle GoldenGateインストール・ディレクトリ内のSQLスクリプト・テンプレートの例には、Db2 z/OSインスタンスにストアド・プロシージャおよびファンクションを設定するSQL文が含まれています。
zOSutils.zipに含まれるSQLスクリプトzOS_OGG_Setup_Template.sqlは、Db2 v12.1以降用であり、Db2 z/OSインスタンスに接続できる任意のプラットフォームで任意のSQLツールから実行します。このスクリプトは、Extractで使用しているDb2インスタンス上で実行する必要があります。リモート・インストール・ディレクトリに提供されるスクリプトはASCII形式です。スクリプトを実行する前に、次の行を編集します。
WLM ENVIRONMENT行を変更して、Oracle GoldenGateに使用するWLM環境の正しい名前を使用します。
ノート: oggifi0001スキーマ名はTRANLOGOPTIONS REMOTESCHEMA schemaname Extractパラメータを使用して構成できます。テンプレート内のプロシージャ名およびファンクション名(OGGINITBおよびOGGREADB)は構成できません。スクリプトとPDSEの各外部名は、スクリプト名とPDSEオブジェクト名が一致している場合、名前を変更できます。これらの名前の変更は、新しいバージョンへの移行を可能にする手順に含まれているか、Db2 z/OSで特定の命名手順に従う必要がある場合のプロシージャに含まれています。
次の表に、編集や更新が必要になる可能性があるコンポーネントのチェック・リストを示します。
表2編集可能なコンポーネントのリスト
| コンポーネント | 開始 | 名前変更 | 場所 |
|---|---|---|---|
oggib001 |
tarファイル | 承認済PDSE | |
oggrb001 |
tarファイル | 承認済PDSE | |
oggmt001 |
tarファイル | 承認済PDSEおよびprocライブラリ | |
oggjt001 |
tarファイル | 承認済PDSEおよびExtractパラメータ | |
oggpr001 |
tarファイル | プロシージャ・ライブラリおよびExtractパラメータ | |
| プロシージャ・ライブラリ | MVS | 必要に応じてExtractパラメータを追加する | |
| ステップ・ライブラリ | MVS | WLMおよびoggpr001プロシージャ・ライブラリ |
|
| リモートスキーマ | zOS_OGG_Setup_Template.sqlおよびExtractパラメータ |
||
| WLM名 | MVS | zOS_OGG_Setup_Template.sql |
|
| 外部のプログラム | zOS_OGG_Setup_Template.sql |
ノート:新しいパッチのインストール後に、これらのステップをすべて実行してください。
Extract用の共有メモリー・マネージャの使用
Oracle GoldenGate Extractでは、共有メモリー使用量を監視するために、WLMから別のタスク(ジョブ)が開始されます。このジョブは、MVSで実行される最小タスクですが、WLMではありません。このスクリプトのユーザー名は、WLM (通常はRACFなどを使用)から開始するときに実行するための権限を持っている必要があります。この監視対象の共有メモリーは、小さい48バイトから64バイトのECSA領域と、Extractバッファ・サイズに基づく大きい64ビット領域で構成されます。
共有メモリー内の特定フィールドは、Extractによって実行される読取りのたびに更新されます。これらのフィールドは、スクリプトでデータが返されるかどうかに関係なく更新されます。モニターはこれらのフィールドをチェックして、Extractが非アクティブになっていないことを確認します。Extractが非アクティブである場合、共有メモリーは解放され、モニターが終了します。Extractのパラメータ・ファイルのremote_memory_optionsパラメータを使用して、メモリー・マネージャを制御できます。
複数のサブパラメータを指定して、モニター・タスクを構成できます。次の例で示すように、リモート・メモリー・オプションのサブパラメータを指定することで、モニターで使用される待機間隔と非アクティブ時間を構成できます。
remote_memory_options wait_interval 2000 inactive_time 01:00
待機間隔は、この例では100分の1秒単位で表されており、モニターが各メモリー・チェック間に20秒待機するようになっています。モニターによるチェックが1時間(書式HH:MM)に達し、「Extract」がまだ非アクティブである場合、モニターが、共有メモリーを解放した後に停止します。その時間中にExtractがアクティブ状態に戻ると、モニターの状態がリセットされ、モニタリングを続行されます。
wait_intervalには100から6000までの値を指定できます。デフォルトは1000です。inactive_timeには00:10から12:00までを指定できます。デフォルトは00:30です。モニターが正しく起動しない場合、ExtractによりExtractレポートに警告メッセージが表示されて、Extractが処理を継続します。Extractは、その停止時にECSAメモリーを解放しようとします。
リモート・メモリー・パラメータには、この機能を動作させるためのオプションが3つある。これらのパラメータの構文は次のとおりです。
-
task_procedure proc name -
task_library proc library -
task_setup task setup program
例:
remote_memory_options task_procedure OGGPR001
remote_memory_options task_library TEST.PROCLIB
remote_memory_options task_setup OGGJT001
次に示すように、1つのコマンドに複数のオプションを指定できます:
remote_memory_options task_procedure OGGPR001 task_library TEST.PROCLIB task_setup OGGJT001
ノート:リモート・メモリー・パラメータの値では大文字と小文字は区別されません。
デフォルト値は、プロシージャ名OGGPR001およびタスク設定プログラムOGGJT001です。タスク・ライブラリにはデフォルトはありません。そのプロシージャはMVSシステムのデフォルト・プロシージャ・ライブラリの1つに組み込まれる可能性があるためです。タスク・ライブラリ・パラメータは、プロシージャがシステムのデフォルト・ライブラリにない場合のみ必要です。
メモリー・タスクは、単純なJOBカードと、Extractから渡されたパラメータを持つEXECプロシージャ名で始まります。一部のz/OSシステムでは、ジョブ・カード上の他の様々なパラメータが必要な場合があります。JOBパラメータは、次に示す例で示すように、リモート・メモリー・パラメータを使用して変更することもできます。
remote_memory_options task_jobname [valid MVS job name (see below)]
remote_memory_options task_acct_info [valid MVS acct value (see below)]
remote_memory_options task_programmer [valid MVS programmer name, Can use single quotes]
remote_memory_options task_class [valid MVS job class A to Z or 0 to 9]
remote_memory_options task_msgclass [valid MVS msgclass A to Z or 0 to 9]
remote_memory_options task_msglevel [valid MVS message level n or (,n) or (n,n) n=valid digit]
remote_memory_options task_priority [valid MVS priority 0-15]
JOB名は、2つの有効な文字とアスタリスク(AA*など)を使用して指定できます。デフォルトのJOB名はGG*です。アスタリスクは、指定すると6つの乱数で置き換えられます。それ以外で、1から8バイトまでの文字名を指定する場合は、有効なMVSジョブ名である必要があります。
アカウント値は、次のいずれかの有効なMVS形式で指定します。
-
OTXI -
'MY ACCT' -
(ACCT,1234,ABC)
特殊文字を許可するパラメータ(acct_infoやprogrammerなど)の場合は、一重引用符で囲みます。さらに、二重、一重引用符またはアンパサンドの引用符内での使用に関するMVS規則は、引き続き適用されます。Extractでは、これらのパラメータに対して最小限の検証が実行され、完全な検証がMVSプロセスに任されます。Extractは、重複パラメータを指定した場合は最初のパラメータを受け入れ、重複は無視します。
プロシージャJCLファイルのサンプルは、zOSPrograms.zipファイルに含まれます。このJCLはWLMプロシージャを置き換えません。WLMで作成されたモニターは、JCLを使用してMVSで動作します。ジョブ出力のアーカイブやその他のプロシージャをサポートするコマンドまたはJCLを追加すると、JCLプロシージャの柔軟性が高まります。
ノート:メモリー・マネージャのインストールおよび設定中に、RACF設定の問題、イニシエータの使用状況、ジョブ・クラスの使用状況、またはメモリー・マネージャに関連する他の同様の問題のために待機する必要がある場合は、メモリー・マネージャが一時的にオフにする必要が生じる場合があります。Extractは、このインスタンスでレガシー・モードで動作し、ECSAおよび64ビット共有メモリーを解放します。Extractでは、Extractレポートの最後に共有メモリーの解放が示されます。
Oracleでは、永続的な解決としてこれをお薦めしていません。使用する場合、ユーザーはECSAおよび64ビット・メモリーの解放を監視します。この機能をオンにするパラメータはアンダースコアで始まり、システムがこのモードで実行されていることをユーザーに通知します。他のリモート・メモリー・オプションは、メモリー管理をオフにするオプションを削除することで、そのままにして使用できます。リモート・メモリー管理パラメータはデフォルトでオンに設定され、次のように指定されます。
remote_memory_options _remote_memory_on
remote_memory_options _remote_memory_off
JCLの形式は次のとおりです。
//*====================================================================
//* EXAMPLE JCL FOR RUNNING THE COMMON MEMORY MONITOR PROCEDURE
//* ADDRESS SPACE NEEDING AN AUTHORIZED LOAD LIBRARY
//* NOTE: THE PROGRAM OGGMT001 CAN BE RENAMED IN THE LIBRARY BUT THE
//* NEW NAME MUST MATCH THE PROGRAM NAME IN THIS JCL
//*====================================================================
//OGGDSNNA PROC RGN=0K TR=,EX=,MEM=,LEN=,SEC=,DUR=,VER=
//OGGDSNNX EXEC PGM=OGGMT001,REGION=&RGN,TIME=NOLIMIT,
// PARM='&TR &EX &MEM &LEN &SEC &DUR &VER'
//*--------------------------------------------------------------------
//* REPLACE &PREFIX.**.AUTHLOAD LIBRARIES WITH SITE SPECIFIC FILE(S)
//* ALSO REPLACE THE CEE LIBRARY WITH SITE SPECIFIC FILE
//* DSNN COULD REPRESENT A DB2 SPECIFIC LOAD LIBRARY IF ONE EXISTS
//*--------------------------------------------------------------------
//STEPLIB DD DISP=SHR,DSN=&PREFIX..WLMDSNN.USER.AUTHLOAD
// DD DISP=SHR,DSN=CEE.SCEERUN
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
PREFIXでマークされたライブラリをシステム内で動作するように変更する。zOSPrograms.tarファイルからコピーしたプログラムOGGMT001の名前を変更するには、JCL内でそれを変更する必要があります。PROC文でのnullパラメータは、情報提供のために存在します。ジョブOGGJT001設定プログラムは、Extractから渡された情報を使用してこれらの値を提供します。また、必要な数のステップ・ライブラリ・データセット名を指定できます。zOSPrograms.tarファイルで提供されるJCLプロシージャは、複数のステップ・ライブラリを使用する例を示しています。