データベース構成

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ストアド・プロシージャおよびファンクション、およびストアド・プロシージャを介してコールされる外部プログラムで構成されます。これらのコンポーネントは次のとおりです。
  1. 外部認可プログラムには、次のものが含まれます。

    1. oggib001 – 初期化およびユーティリティ・プログラム

    2. oggrb001 – ログ読取りプログラム機能

    3. oggmt001 – ECSAおよび64ビット・メモリーを監視するスタンドアロン・プログラム

    4. oggjt001oggib001プログラムから実行されるoggmt001起動JCLのセットアップ・プログラム
    5. oggfr001 – DBAがOracle Supportのガイダンスで使用するユーティリティ

  2. SQLストアド・プロシージャおよびファンクション・テンプレートは、OGGINITBおよびOGGREADB SQLを含むSQLスクリプトzOS_OGG_Setup_Template.sqlに含まれています。

  3. JCLプロシージャoggtask.jcl

ノート:

SQLおよびJCL名の値の外部名はデフォルトであり、編集および更新できます。このプロセスについては、後続の項で説明します。

Db2 z/OS Extractのレプリケーション・プロセスは、Db2 z/OS Extractとそのメインフレーム・コンポーネントのレプリケーション・プロセスを示しています。

図4-1 Db2 z/OS Extractのレプリケーション・プロセス


Db2 z/OS Extractのレプリケーション・プロセス

前述の図に示すように、数字1から9を使用してプロセスが開始および実行されます。これらのステップを次に示します。
  1. Extractは、インストール時に作成されたパラメータ・ファイルから、JCLパラメータを含むパラメータを読み取ります。

  2. Extractは起動情報をレポートし、証跡ファイルの書込みを準備します。

  3. ODBCは、Db2データベースから情報を収集し、レプリケーションを開始するために使用されます。

  4. OGGINITB SQLストアド・プロシージャは、共有メモリーの準備、およびレプリケーションに必要なその他のデータの収集を開始します。

  5. SQLストアド・プロシージャによってコールされるOGGIB001外部プログラムは、OGGJT001ジョブ設定プログラムを使用してメモリー・モニター・タスクを開始します。

  6. OGGMT001メモリー・モニター・タスクは、ECSAおよび64ビットの共有メモリーの監視を開始します。

  7. OGGREADB SQLファンクションは、外部プログラムOGGRB001をコールします。

  8. OGGRB001外部プログラムは、Db2ログ読取りプログラムを繰り返しコールして、1から多数のログ・レコード・バッファをExtractに返す結果セットを作成します。

  9. ログ・レコードの結果セットが完了すると、OGGRB001は結果セットをExtractに送信した後に終了します。

Extractは、停止または異常終了するまでステップ7から9を繰り返します。メモリー・タスクの起動に失敗すると、OGGIB001プログラムはJCLエラーまたは設定の問題があったことを示すフラグを返し、Extractはそのメモリーの管理を開始します。メモリー・タスクが正常に開始すると、メモリー・タスクは48バイトのECSA共有メモリー内の絶えず変更するフィールドをテストします。Extractがなんらかの理由で終了すると、これらのフィールドは変更されなくなります。その時点で、メモリー・マネージャは、Extractまたはネットワークが遅い場合は待機し、メモリーを解放してから、構成された時間制限の後に停止します。

Oracle GoldenGate for Db2 z/OSのExtractに必要なコンポーネントをインストールするには:
  1. ライブラリ(PDSE)がDb2 z/OSシステムに存在し、このライブラリが承認されたライブラリ・リストに含まれていることを確認します。このライブラリはOracle GoldenGateの外部プログラム・オブジェクトが配置される場所です。
  2. APF承認のWLMプロシージャが、前述のステップのPDSEを参照していることを確認します。WLM環境のNUMTCB値は、ストアド・プロシージャの場合、10から40にすることをお薦めします。NUMTCB値は、データベースに対して同時に実行されているExtractの最大数および各Extractに必要なスループットに依存します。NUMTCBの設定に柔軟性を持たせたい場合、WLMの起動JCLで指定します(ただし、作成パネルでは指定しないでください)。
  3. WLMアプリケーション環境およびストアド・プロシージャの作成のためのセキュリティを設定するには、次の手順を実行します。
    1. (オプション)ストアド・プロシージャを実行できるWLM確立アドレス空間を指定します。このステップを実行しないと、どのWLM確立アドレス空間でもストアド・プロシージャを実行できます。
    2. 特定のWLMアドレス空間にプロシージャを作成するために、ユーザーにアクセス権を付与します。
    3. 特定のスキーマにプロシージャを作成するために、ユーザーにアクセス権を付与します。該当するスキーマのためにCREATINオプションでGRANT文を使用します。
    4. 特定のコレクションにプロシージャのパッケージを作成するために、ユーザーにアクセス権を付与します。該当するコレクションのためにCREATEオプションでGRANT文を使用します。 
    5. アクセス権を付与してWLM環境を該当するユーザーに対してリフレッシュします。
    6. 適切なユーザーにRACF権限を追加し、WLMプロシージャがメモリー・マネージャ・ジョブを開始できるようにします。
  4. WLM起動JCLプロシージャの実行に使用するIDにRRSAFを使用する権限があることを確認します。Db2 WLMアドレス空間の1つが起動するたびに、RRSAFを使用してDb2に接続します。Db2 12 for z/OSインストレーションおよび移行のガイドを参照してください。
  5. Oracle GoldenGate for Db2 z/OSのLinuxまたはUNIXインストールでは、Oracle Goldengateインストール・ディレクトリ(lib/utl/zOSutils.zip)にZIPファイルがあり、これにはzOSPrograms.zipというファイルが含まれています。zOSPrograms.zipzOSPrograms.tarに解凍し、zOSPrograms.tarをバイナリ・モードでDb2 z/OSシステムのHFSディレクトリにコピーします。
  6. Db2 z/OSシステムでUSSまたはOMVSを使用して、ディレクトリをzOSPrograms.tarを含むディレクトリに変更します。
  7. tar -xovf zOSPrograms.tarコマンドを使用して、オブジェクトをリストアします。
  8. オブジェクトを承認されたPDSEにコピーします。cp –X ogg[irmj][abt][0-9]* “//’authorized_PDSE_name’”を使用します(authorized_PDSE_nameは、Oracle GoldenGateオブジェクト用のAPF承認PDSEの名前です)。このコマンドを使用して、デフォルト名のオブジェクトをインストールします。

    ノート:

    このコマンドでは、コピー先は、二重引用符、スラッシュ、一重引用符、承認されたPDSE名、一重引用符、二重引用符で示されています。-Xは大文字のXで、小文字のxではありません

  9. 異なる名前でスクリプトをインストールすると、システム・プロトコルに準拠したり、複数のバージョンの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コマンドを使用して実行できます。このスクリプトは、新しいバージョンにコピーして再利用できます。

  10. 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形式です。EBCDIC形式のDb2 z/OSシステムのzOSPrograms.tarから同じスクリプトがリストアされます。これは、SPUFIなどのネイティブのDb2 z/OSツールを介して使用する場合に適しています。

    スクリプトを実行する前に、次の行を編集します。

    • WLM ENVIRONMENT行を変更して、Oracle GoldenGateに使用するWLM環境の正しい名前を使用します。

ノート:

oggifi0001スキーマ名はTRANLOGOPTIONS REMOTESCHEMA schemaname Extractパラメータを使用して構成できます。テンプレート内のプロシージャ名およびファンクション名(OGGINITBおよびOGGREADB)は構成できません。スクリプトとPDSEの各外部名は、スクリプト名とPDSEオブジェクト名が一致している場合、名前を変更できます。これらの名前の変更は、新しいバージョンに移行できるプロシージャの一部であるか、Db2 z/OSで特定のネーミング・プロシージャに従う必要がある場合のプロシージャの一部です。

次の表に、編集または更新する可能性のあるコンポーネントのチェック・リストを示します。

表4-3 編集可能なコンポーネントのリスト

コンポーネント 名前変更 説明

oggib001

Tarファイル

 

承認済PDSE

oggrb001

Tarファイル

 

承認済PDSE

oggmt001

Tarファイル

 

承認済PDSEおよびprocライブラリ

oggjt001

Tarファイル

 

承認済PDSEおよびExtractパラメータ

oggpr001

Tarファイル

 

プロシージャ・ライブラリおよびExtractパラメータ

proclib

MVS  

必要に応じてExtractパラメータを追加します

ステップ・ライブラリ

MVS

 

WLMおよびoggpr001プロシージャ・ライブラリ

remoteschema

   

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

この例の待機間隔は1/100秒単位で表され、モニターは各メモリー・チェック間に20秒待機します。モニターによるチェックが1時間(書式HH:MM)に達し、Extractが依然として非アクティブである場合、モニターは共有メモリーを解放した後に停止します。Extractがその時間内にアクティブ状態に戻ると、モニターはその状態をリセットして監視を続行します。

wait_intervalには100から6000までの値を指定でき、デフォルトは1000です。inactive_timeには00:10から12:00までを指定でき、デフォルトは00:30です。モニターが正しく起動しない場合、Extractはレポートに警告メッセージを表示し、処理を続行します。Extractは、停止時にECSAメモリーの解放を試みます。

リモート・メモリー・パラメータには、この機能を動作させるための3つのオプションがあります。これらのパラメータの構文は次のとおりです:
  • task_procedure プロシージャ名

  • task_library プロシージャ・ライブラリ

  • task_setup タスク設定プログラム

例:
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システムのデフォルトのプロシージャ・ライブラリのいずれかに組み込まれている可能性があるためです。タスク・ライブラリ・パラメータは、プロシージャがシステムのデフォルト・ライブラリにない場合にのみ必要です。

メモリー・タスクは、単純な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_infoprogrammerなど)の場合は、一重引用符で囲みます。さらに、引用符内で二重引用符またはアンパサンドを使用することに関する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プロシージャは、複数のステップ・ライブラリを使用する例を示しています。