主コンテンツへ
Oracle® Fusion Middleware異種データベースのためのOracle GoldenGateの使用
12c (12.3.0.1)
E94566-03
目次へ移動
目次

前
次

5 Oracle GoldenGateシステムの準備

この章では、Oracle GoldenGateをサポートするためのDB2 for iシステムの準備に関するガイドラインを示します。

内容は次のとおりです。

5.1 Extractによるデータ取得のためのジャーナルの準備

データの取得対象の表はすべて、明示的に、あるいはデフォルトである同じライブラリ内のQSQJRNジャーナルを使用して、ジャーナル処理される必要があります。データの整合性を保つには、システムに出現した時間順にデータ・ジャーナル・エントリをExtractプロセスに送信する必要があります。この項では、Extractプロセスによる取得をサポートするようジャーナルを構成するためのガイドラインを示します。

5.1.1 Extractグループへのジャーナルの割当て

1つのExtractプロセスで最大30個のジャーナルを処理できます。それより多くのジャーナルを使用する場合、追加のExtractプロセスを使用して超過分のジャーナルを処理します。必要に応じて、追加のExtractプロセスを使用して取得のパフォーマンスを向上させることもできます。

注意:

トランザクションの整合性を保証するには、特定のトランザクションに対応するすべてのジャーナルを同一のExtractグループで読み取る必要があります。複数のExtractプロセスの使用の詳細は、Oracle GoldenGateの管理のOracle GoldenGateのパフォーマンスのチューニングを参照してください。

5.1.2 ジャーナル・パラメータの設定

Extractプロセスによるデータの取得をサポートするには、少なくとも次のジャーナル・パラメータの設定が必要です。

  • レシーバの管理(MNGRCV): *SYSTEM

  • レシーバの削除(DLTRCV): *NO

  • レシーバ・サイズ・オプション(RCVSIZOPT): *MAXOPT2 (*MAXOPT3が推奨)

  • ジャーナルの状態(JRNSTATE): *ACTIVE

  • 項目固有のデータの最小化(MINENTDTA): *NONE

  • 固定長データ(FIXLENDTA): *USR *SYSSEQ

次の例に、これらの属性をライブラリLIB1のジャーナルJRN1に設定するコマンドを示します。

CHGJRN JRN(LIB1/JRN1) MNGRCV(*SYSTEM) DLTRCV(*NO) RCVSIZOPT(*MAXOPT2) JRNSTATE(*ACTIVE) MINENTDTA(*NONE) FIXLENDTA(*USR *SYSSEQ)

注意:

ジャーナルの属性を確認するには、コマンドWRKJRNA JRN(LIB1/JRN1) DETAIL(*CURATR)を使用します。

ジャーナルのパラメータが、推奨された設定値に設定されている場合、ジャーナルの項目に、Oracle GoldenGateの処理が行われるのに必要な情報がすべて含まれることが保証されます。これらの設定で、システムによって、ジャーナル・レシーバが自動的に削除されず、Extractが古いデータを処理する必要が生じた場合に備えて保持されることも保証されます。

5.1.3 ジャーナル・レシーバの削除

Extractのお薦めの構成ではDLTRCVパラメータはNOに設定されますが(ジャーナル・パラメータの設定を参照)、Extractによる取得の完了後に古いジャーナル・レシーバを削除できます。

Oracle GoldenGateが読み取るジャーナルを使用する別のアプリケーションを使用している場合は、設定可能なジャーナル・レシーバの自動クリーンアップに関して考慮する必要があります。Oracle GoldenGateは、ジャーナル・レシーバがデタッチまたは削除される前に読み取ることができる必要があります。

ジャーナル・レシーバを削除する手順

  1. GGSCIを実行します。
  2. GGSCIで次のコマンドを発行し、Extractが現在の処理位置としているジャーナルの位置とそのジャーナル・レシーバを確認します。
    INFO EXTRACT group
    
  3. 次のDB2 for iコマンドを使用して、INFO EXTRACTコマンドで表示されたジャーナル・レシーバより前に生成されたジャーナル・レシーバを削除します。
    DLTJRNRCV JRNRCV(library/journal_receiver)
    

    説明:

    libraryおよびjournal_receiverは、ライブラリおよび削除するジャーナル・レシーバの実際の名前です。このコマンドの詳細は、DB2 for iインフォメーション・センターを参照してください。

5.2 オブジェクト名の指定

Oracle GoldenGateのコマンドおよびパラメータでは、SQL名形式、library_name/file_name(member_name)の形式のネイティブ名、両者の混在がサポートされます。ネイティブ・ファイル・システム名にメンバー名が含まれない場合、すべてのメンバーがOracle GoldenGateプロセスによって暗黙的に選択されます。SQL名の場合は、最初のメンバーのみが使用されます。

二重引用符で囲まれたオブジェクト名の大/小文字の区別をサポートするには、Oracle GoldenGateパラメータ・ファイルでそれらの名前を二重引用符で囲んで指定します。これは、SQL名でもネイティブ・ファイル・システム名でも同様です。

DB2 for i以外のプラットフォームでMAP文にネイティブ表名を指定するときは、Oracle GoldenGateがセパレータ文字として正しく解釈するように、名前を二重引用符で囲む必要があります。

他のOracle GoldenGateの管理ドキュメントやリファレンス内の用語との一貫性を保つため、ここに示すように、SQLの用語「スキーマ」および「表」をDB2 for iデータのコンテナの意で使用します。

表5-1 ネイティブとSQLのオブジェクト名の関係

ネイティブ SQL 注意

ライブラリ

(最大長10)

スキーマ

(最大長128)

オペレーティング・システムによって、SQLで作成されたスキーマに対応するネイティブ名が作成されます。

ファイル

(最大長10)

(最大長128)

オペレーティング・システムによって、SQLで作成された表に対応するネイティブ名が作成されます。

メンバー

適用外

実際のデータが含まれます。FILEオブジェクトの最初メンバーのみがSQLを介してアクセスされます。他のメンバーのデータにアクセスするには、ネイティブ・システム名を使用する必要があります。

5.3 処理のための表の準備

次の表属性は、Oracle GoldenGate環境で処理する必要があります。

5.3.1 行識別子の割当て

Oracle GoldenGateでは、レプリケートされた更新および削除に対して正しいターゲット行を見つけるために、ソース表とターゲット表にある形式の一意の行識別子が必要です。

5.3.1.1 Oracle GoldenGateが使用する行識別子の種類を判別する方法

TABLEまたはMAP文でKEYCOLS句が使用されないかぎり、Oracle GoldenGateは、使用する行識別子を次の優先順位に従って選択します。

  1. 主キー

  2. タイムスタンプまたはマテリアライズされていない計算結果列を含まない英数字順で最初の一意キー。

  3. 前述のキー・タイプのいずれも存在しない場合(その他の種類のキーが表に定義されている場合でも)、Oracle GoldenGateは、データベースで一意キーでの使用を許可されているすべての列(キー内での使用がOracle GoldenGateでサポートされていない列やOracle GoldenGate構成から除外されている列は除く)で疑似キーを作成します。

注意:

表に使用可能な他のキーがない場合や、表にキーがまったくない場合、Oracle GoldenGateは該当するメッセージをレポート・ファイルに記録します。すべての列からキーを作成すると、ソース・システムのOracle GoldenGateのパフォーマンスが低下します。ターゲットでは、このキーはReplicatであまり効率的でないより大きいWHERE句が使用される原因となります。

5.3.1.2 KEYCOLSを使用したカスタム・キーの指定

前述のキー・タイプの行識別子が表に存在しないか、または、それらの識別子を使用しない場合は、常に一意の値が含まれている列が表にあれば、代替キーを定義できます。ExtractのTABLEパラメータおよびReplicatのMAPパラメータ内にKEYCOLS句を含めることで、この代替キーを定義します。指定したキーにより、Oracle GoldenGateで検出される既存の主キーまたは一意キーはオーバーライドされます。

5.3.2 キー変更の防止

Oracle GoldenGateがジャーナル・データの処理を開始した後に、Extractによって表の行識別子として使用されるキー(主キー、一意キー、KEYCOLSキーまたはすべての列キー)に列を追加する必要がある場合、次の手順に従って変更します。

  1. Extractを停止します。
    STOP EXTRACT group
    
  2. 既存のジャーナル・データがすべて処理されたことを表すEOFが返されるまで、次のコマンドを発行します。
    INFO EXTRACT group
    
  3. キーに変更を加えます。
  4. Extractを起動します。
    START EXTRACT group

5.3.3 ターゲットでの制約の無効化

ターゲット表で、トリガーおよびカスケード制約を無効にするか、Replicatによる変更を無視するよう構成する必要があります。Oracle GoldenGateでは、トリガーまたはカスケード制約によって生じたDMLがレプリケートされるため、制約を無効にする必要があります。同じトリガーや制約がターゲット表でアクティブになった場合、レプリケートされたバージョンのために重複となり、データベースでエラーが返されます。ソース表にemp_srcsalary_src、ターゲット表にemp_targsalary_targを使用している次の例について考えます。

  1. emp_srcに削除が発行されます。
  2. それによって、削除がsalary_srcにカスケードされます。
  3. Oracle GoldenGateが、両方の削除をターゲットに送信します。
  4. 親削除が最初に到達し、emp_targに適用されます。
  5. 親削除によって、削除がsalary_targにカスケードされます。
  6. salary_srcのカスケードされた削除が、salary_targに適用されます。
  7. 行は、すでに手順5で削除されているため、見つかりません。

5.3.4 変更の取得の有効化

表に対する変更をジャーナルに取得するには、OS/400コマンドラインでSTRJRNPFコマンドを実行するか、GGSCIからADD TRANDATAコマンドを実行します。ADD TRANDATAコマンドはSTRJRNPFを呼び出す、表のジャーナル処理を開始する推奨メソッドです。STRJRNPFコマンドでRecord Images (IMAGES): *BOTHの必要なジャーナル・イメージ属性が確実に設定されるためです。

ADD TRANDATAを実行する手順

  1. ソース・システムでGGSCIを実行します。
  2. DBLOGINコマンドを発行します。
    DBLOGIN SOURCEDB database USERID user, PASSWORD password [encryption_options]
    

    説明: SOURCEDBではデフォルトのDB 2 for iデータベースを、USERIDでは、Extractユーザー・プロファイルを、PASSWORDではそのプロファイルのパスワードを指定します。

    注意:

    DB2 for iシステムに対しては、BLOWFISH暗号化のみサポートされています。

  3. ADD TRANDATAコマンドを発行します。
    ADD TRANDATA table_specification
    

    説明: table_specificationは次のいずれかです。

5.3.4.1 デフォルト・ジャーナルの指定

ADD TRANDATAコマンドで複数の表またはファイルに対してデフォルト・ジャーナルを指定するには、JOURNALキーワードを指定するかわりに、ADD TRANDATAを発行する前に次のGGSCIコマンドを使用します。

DEFAULTJOURNAL library/journal 

ジャーナルを指定せずに使用されたADD TRANDATAでは、DEFAULTJOURNALのジャーナルが想定されます。

DEFAULTJOURNALの現在の設定を表示するには、引数なしでコマンドを発行します。

5.3.4.2 デフォルト・ジャーナルの指定の削除

デフォルト・ジャーナルの使用を削除するには、次のGGSCIコマンドを使用します。

DEFAULTJOURNAL CLEAR

5.3.5 マテリアライズ問合せ表の維持

ソースとターゲットのマテリアライズ問合せ表(MQT)間の同等性を維持するには、ベース表をレプリケートしますが、MQTはレプリケートしません。ターゲット・データベースでは、Replicatがベース表に適用する変更に基づいてMQTが整備されます。

これらの表を構成するためのルールを次に示します。

  • ベース表をTABLEおよびMAP文に含めます。

  • MQTはTABLEおよびMAP文に含めないでください。

  • MQT名が通常の表名とともに解決される可能性はありますが、TABLEおよびMAP文でワイルドカードを使用できます。Oracle GoldenGateは、ワイルドカードを使用した表リストからMQTを自動的に除外します。ただし、ExtractのTABLE文でMQTを名前によって明示的にリストすると、Extractが異常終了する原因となります。

5.3.6 Oracle GoldenGateライブラリの指定

Oracle GoldenGateを起動するには、ggos400installスクリプトの実行時にDB2 for i用Oracle GoldenGateライブラリの名前を指定します。これによって、そのライブラリにリストアされたOGGPRCJRN *SRVPGM(サービス・プログラム)オブジェクトへのリンクが作成されます。oggprcjrnサービス・プログラムへのリンクが削除された場合、ggos400installシェル・スクリプトを再度実行して同じライブラリを指定するか、コマンド"ln -s /qsys.lib/OGG_library.lib/oggprcjrn.srvpgm oggprcjrn.srvpgm"を使用します。このリンクが正しくない場合や見つからない場合、Extractは異常終了します。

5.4 システム・クロックの調整

システム・クロックをUTC(協定世界時)時間に設定し、DB2 for iシステム値でタイムゾーン・オフセットを使用して正しいローカル時間を表すことをお薦めします。この設定が正しく行われている場合、レプリケーションに悪影響を及ぼすことなく、ローカルの夏時間の調整が自動的に行われます。

5.5 ODBCドライバの構成

この項は、WindowsまたはLinuxシステムにReplicatをインストールしてDB2 for iターゲットからリモート操作する場合にのみ該当します。この構成では、ReplicatはODBCに指定されたデータベース接続によりターゲット・システムに接続する必要があります。次の手順に、ODBCをインストールして構成し、DB2 for iターゲット・システムに接続する方法を示します。

LinuxでのODBCの構成

WindowsでのODBCの構成

5.5.1 LinuxでのODBCの構成

ODBCの構成には、Linuxディストリビューションに付属している、ODBC構成ユーティリティを実行するグラフィカル・ユーザー・インタフェースを使用できます。あるいは、次の手順に示す設定でodbc.iniファイルを編集して構成することもできます。(次の手順では、Linux用ODBCConfigグラフィカル・インタフェース・ユーティリティから起動されるODBC管理ツールを示します。)

  1. ベンダーのドキュメントに従って、リモートLinuxシステムに32ビットまたは64ビットのiSeries Access ODBCドライバをダウンロードし、インストールします。iSeries ODBCドライバは、iSeries Accessのコンポーネントとして無償で提供されます。
  2. 使用するドライバに応じて、次のいずれかのコマンドを発行します。

    32ビット・ドライバ:

    rpm -ivh iSeriesAccess-7.1.0-1.0.i386.rpm
    

    64ビット・ドライバ:

    rpm -ivh iSeriesAccess-7.1.0-1.0.x86_64.rpm
    
  3. ユーザーDSN(作成したユーザーのみが使用できる接続)を作成することも、システムDSN(システムのすべてのユーザーが使用できる接続)を作成することもできます。ユーザーDSNを作成するには、Replicatプロセスに使用するユーザーとしてシステムにログオンします。
  4. ODBC構成ユーティリティを実行します。
  5. ODBC構成ツールの初期ページで、「User DSN」タブを選択してユーザーDSNを作成するか、「System DSN」タブを選択してシステムDSNを作成します。(この手順ではユーザーDSNを作成します。システムDSNの作成も同様です。)

    図5-1 LinuxでのODBC DSNの追加

    図5-1の説明は次にあります
    「図5-1 LinuxでのODBC DSNの追加」の説明
  6. 選択したタブで、「Add」をクリックします。
  7. 適切なiSeries Access ODBCドライバを選択して「OK」をクリックし、この手順のステップ8に進みます。適切なドライバが「Select the DRIVER」リストに表示されない場合、「Add...」ボタンをクリックして、図3-3に示されたフィールドを完成させます。

    図5-2 LinuxでのODBCドライバの選択

    図5-2の説明が続きます
    「図5-2 LinuxでのODBCドライバの選択」の説明

    図5-3 ドライバが見つからない場合のドライバ・プロパティの手動の編集

    図5-3の説明が続きます
    「図5-3 ドライバが見つからない場合のドライバ・プロパティの手動の編集」の説明

    図5-3のフィールドを完成させる方法は、次のとおりです。

    • 「Name」をドライバの名前に設定します。

    • 「Driver」をドライバがインストールされているパスに設定します。

    • 「Setup」を、ドライバ・インストール・ディレクトリにあるlibcwbodbci.soファイルに設定します。

    • 他の設定をデフォルトのままにします。

    • 「Name」フィールドの上にあるチェック・マークをクリックし、設定を保存します。

  8. 「Data Source Properties」ダイアログの「Name」フィールドに、1語から成るデータ・ソースの名前を指定します。「System」フィールドに、ターゲットDB2 for iシステムの完全修飾名(sysname.company.comなど)を入力します。「UserID」および「Password」フィールドを空白のままにし、データベースへの接続時にReplicatが資格証明を指定できるようにします。残りのフィールドをデフォルトの設定のままにし、「Name」フィールドの上にあるチェック・マークをクリックし、設定を保存します。

    図5-4 データ・ソース・プロパティの設定

    図5-4の説明が続きます
    「図5-4 データ・ソース・プロパティの設定」の説明
  9. 「ODBC Data Source Administrator」ダイアログに戻ります。「OK」をクリックして、ODBC構成ユーティリティを終了します。
  10. GRAPHIC型、VARGRAPHIC型およびDBCLOB型をサポートするには、.odbc.iniファイルを編集し、次の行を追加します。
    GRAPHIC = 1
    

    注意:

    ユーザー・データ・ソース名を作成した場合、このファイルは、作成したユーザーのホーム・ディレクトリにあります。システムDSNを作成した場合、このファイルは/etc/odbc.iniまたは/usr/local/etc/odbc.iniにあります。

  11. ターゲットのOracle GoldenGateディレクトリからGGSCIを実行し、DBLOGINコマンドを発行してターゲット・データベースにログインします。構文の詳細は、『Oracle GoldenGateリファレンス』を参照してください。
    DBLOGIN SOURCEDB database, USERID db_user [, PASSWORD pw [encryption options]]
    

    説明:

    • SOURCEDB databaseには、新規データ・ソース名を指定します。

    • USERID db_user, PASSWORD pwは、Replicatデータベース・ユーザー・プロファイルおよびパスワードです。

    • encryption optionsは、オプションのパスワード暗号化です。

    注意:

    DB2 for iシステムに対しては、BLOWFISH暗号化のみサポートされています。

5.5.2 WindowsでのODBCの構成

Windowsでは、ODBC管理ツールは、「管理ツール」フォルダにある「データ ソース(ODBC)」です。

  1. ベンダーのドキュメントに従って、リモートWindowsシステムにDB2 for iSeries Accessパッケージから32ビットまたは64ビットのiSeries Access ODBCドライバをダウンロードし、インストールします。iSeries ODBCドライバは、iSeries Accessのコンポーネントとして無償で提供されます。
  2. ユーザーDSN(作成したユーザーのみが使用できる接続)を作成することも、システムDSN(システムのすべてのユーザーが使用できる接続)を作成することもできます。ユーザーDSNを作成するには、Replicatプロセスに使用するユーザーとしてシステムにログオンします。
  3. Windowsのコントロール パネルから、「管理ツール」「データ ソース(ODBC)」の順に選択します。
  4. ODBC構成ツールの最初ページで、「ユーザーDSN」タブを選択してユーザーDSNを作成するか、「システムDSN」タブを選択してシステムDSNを作成します。(この手順ではユーザーDSNを作成します。システムDSNの作成も同様です。)

    図5-5 WindowsでのODBC DSNの追加

    図5-5の説明が続きます
    「図5-5 WindowsでのODBC DSNの追加」の説明
  5. 選択したタブで、「追加」をクリックします。
  6. 適切なiSeries Access ODBC Driverをドライバのリストから選択し、「完了」をクリックします。

    図5-6 WindowsでのODBCドライバの選択

    図5-6の説明が続きます
    「図5-6 WindowsでのODBCドライバの選択」の説明
  7. 「DB2 for i Access for Windows ODBCセットアップ」ダイアログの「一般」タブで、「データ・ソース名」フィールドに名前(空白なし)を指定し、「記述」フィールドにオプションの説明を追加して、「システム」選択リストからシステム名を選択します。

    図5-7 Windowsでの一般ODBCプロパティの設定

    図5-7の説明が続きます。
    「図5-7 Windowsでの一般ODBCプロパティの設定」の説明
  8. 「サーバー」タブで、「命名規則」を「SQL Naming Convention (*SQL)」に設定します。他のフィールドをデフォルトの設定のままにします。

    図5-8 WindowsでのサーバーODBCプロパティの設定

    図5-8の説明が続きます。
    「図5-8 WindowsでのサーバーODBCプロパティの設定」の説明
  9. 「データ型」タブの「2バイト文字セット(DBCS)グラフィック・データ型」で、「サポートどおりにレポート」チェック・ボックスを選択します。

    図5-9 DBCS ODBCプロパティの設定

    図5-9の説明が続きます。
    「図5-9 DBCS ODBCプロパティの設定」の説明
  10. 「変換」タブで「バイナリ・データ(CCSID 65535)をテキストに変換」チェック・ボックスを選択解除します。

    図5-10 変換ODBCプロパティの設定

    図5-10の説明が続きます。
    「図5-10 変換ODBCプロパティの設定」の説明
  11. 「適用」「OK」の順にクリックします。「ODBC Data Source Administrator」ダイアログに戻ります。
  12. 新しいデータ・ソース名が「ユーザー データ ソース」に表示されていることを確認します。

    図5-11 新規データ・ソース名の確認

    図5-11の説明が続きます。
    「図5-11 新規データ・ソース名の確認」の説明
  13. 「OK」をクリックして、ODBC構成ユーティリティを終了します。
  14. ターゲットのOracle GoldenGateディレクトリからGGSCIを実行し、DBLOGINコマンドを発行してターゲット・データベースにログインします。構文の詳細は、『Oracle GoldenGateリファレンス』を参照してください。
    DBLOGIN SOURCEDB database, USERID db_user [, PASSWORD pw [encryption_options]]
    

    説明:

    • SOURCEDB databaseには、新規データ・ソース名を指定します。

    • USERID db_user, PASSWORD pwは、Replicatデータベース・ユーザー・プロファイルおよびパスワードです。

    • encryption_optionsは、オプションのパスワード暗号化です。

      注意:

      DB2 for iシステムに対しては、BLOWFISH暗号化のみサポートされています。