6 DB2 for iのためのOracle GoldenGateの構成

この章では、ソースDB2 for iデータを取得し、サポートされているターゲット・データベースに適用するためのOracle GoldenGateの構成方法について説明します。

内容は次のとおりです。

この手順でできること

ここでの手順では、トランザクション・データ変更をDB2 for iソースからDB2 for iターゲットまたは異なるタイプのデータベースにレプリケートするプロセスごとに1つの、基本的なOracle GoldenGateパラメータ(構成)ファイル・セットを構成する方法を示します。ビジネス要件によってはより複雑なトポロジが必要ですが、この手順がその他の構成ステップの基礎となります。

この章では、DB2 for iに固有の基本パラメータに重点を置いて説明します。

ステップを実行することで、次のことが可能です。

  • 基本的な構成ファイルが作成されます。

  • 後で環境に適用する機能や要件について決定を下してパラメータを追加し、それらを拡張します。

  • コピーを使用して、一から作成するよりも短時間で追加パラメータ・ファイルを作成します。

Oracle GoldenGateのスタート・ガイド

構成プロセスを進める前に、Oracle GoldenGateアーキテクチャ、コマンド・インタフェースおよびプロセスに対する入力および指示の指定方法についてよく理解しておく必要があります。詳細は、『Oracle GoldenGateの管理』を参照してください。

Oracle GoldenGateインスタンスの作成

各Oracle GoldenGateインストールは、Managerプロセスをベースとします。これが、Oracle GoldenGateプロセスのインスタンス化、ポート番号の割当ておよびファイル・メンテナンスを行うコントローラ・プロセスです。Managerプロセスとその子プロセス、およびそれに関連するプログラムとファイルを合せてOracle GoldenGateインスタンスを構成します。

Oracle GoldenGateを実行するには、Oracle GoldenGate環境に含まれるすべてのシステムでManagerプロセスが実行されている必要があります。Managerを実行するには、まず、そのパラメータ・ファイルを作成します。

GLOBALSファイルの作成

GLOBALSパラメータ・ファイルには、Oracle GoldenGateインスタンス内のすべてのプロセスに影響するパラメータが含まれています。GLOBALSパラメータのNAMECCSIDは、DB2 for iに固有であり、システムCCSIDとは異なるCCSIDによって参照されるオブジェクト名がSQLカタログに含まれる場合は必須となります。SQLカタログはシステムCCSIDで作成されますが、問合せ時にこの違いは示されません。NAMECCSIDを使用して正しいCCSID値を指定しないかぎり、Oracle GoldenGateはカタログに対して誤った問合せを実行し、その名前を検索する可能性があります。詳細は、『Oracle GoldenGateリファレンス』を参照してください。

データ定義ファイルの作成

ある表から別の表にデータをレプリケートする場合、ソース表とターゲット表の列構造(メタデータ)が同一かどうかは重要な問題です。Oracle GoldenGateは、次の目的でメタデータを参照します。

  • ソースで、取得された操作に関する完全な情報をReplicatプロセスに提供するため。

  • ターゲットで、レプリケートされたデータがReplicatによって正しくマップされ、(必要に応じて)変換されるよう、ターゲット表の構造を決めるため。

ソース表とターゲット表の定義が異なる場合、Oracle GoldenGateでは、ある形式から別の形式への変換を実行する必要があります。変換を実行するには、Oracle GoldenGateが両方の定義セットを認識していることが必要です。Oracle GoldenGateは、ローカル・データベースに問い合せて一方の定義セットを取得できますが、リモート・データベースから定義を取得するにはデータ定義ファイルが必要になります。データ定義ファイルには、レプリケート対象データのメタデータに関する情報が含まれています。

定義ファイルを作成するには、DEFGENユーティリティを構成して実行し、定義ファイルをターゲット・システムに転送します。このファイルは、Oracle GoldenGateプロセスを初めて起動するより前に、ターゲット・システムに配置する必要があります。

ExtractおよびReplicatのパスワードの暗号化

プライマリExtract、データ・ポンプExtractおよびReplicatプロセスに使用されるユーザー・プロファイルのパスワードを暗号化することをお薦めします。DB2 for iプラットフォームでは、Oracle GoldenGateはBlowfish暗号化を使用する必要があります。Oracle GoldenGateの標準的な暗号化方法であるAES (Advanced Encryption Standard)は、IBM iプラットフォームでサポートされています。パスワードを暗号化するには、『Oracle GoldenGateの管理』のランタイム・パラメータの使用に関する項を参照してください。ここにはディスク・ストレージ内のデータの暗号化方法やTCP/IP経由のデータの暗号化方法に関する情報も記載されています。

ノート:

Oracle GoldenGate資格証明ストアは、iSeriesプラットフォームではサポートされません。

DB2 for iから変更を取得するためのExtractの構成

次のステップをソース・システムで実行し、変更の取得とネットワーク経由の転送をサポートするプライマリExtractとデータ・ポンプExtractを構成します。

プライマリExtractの構成

次のステップでは、トランザクション・データをソースDB2 LUWから取得し、そのデータを一時的に保存するためにローカル証跡に書き込むようにプライマリExtractを構成します。

  1. ソース・システムのGGSCIで、Extractパラメータ・ファイルを作成します。
    EDIT PARAMS name
    

    説明: nameは、プライマリExtractの名前です。

  2. 次に示す順序でExtractパラメータを入力します。パラメータ文ごとに新しい行を開始します。

    プライマリExtractの基本パラメータ

    EXTRACT finance
    SOURCEDB mysource, USERIDALIAS myalias 
    ENCRYPTTRAIL AES192
    EXTTRAIL /ggs/dirdat/lt
    TABLE hr.*;
    
    パラメータ 説明
    EXTRACT group

    groupは、Extractグループの名前です。

    SOURCEDB database, USERIDALIAS alias

    ソースDB2 for iデータベースの実際の名前(別名ではなく)と、Extractに割り当てられているユーザーのデータベース・ログイン資格証明を指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGateプロセス用データベース・ユーザー」を参照してください

    ENCRYPTTRAIL algorithm

    ローカル証跡を暗号化します。

    EXTTRAIL pathname

    一時的な格納のために、取得したデータをプライマリExtractが書き込むローカル証跡のパス名を指定します。

    TABLE schema.object;
    

    データをキャプチャするデータベース・オブジェクトを指定します。

    • TABLEは必須キーワードです。

    • schemaは、スキーマ名またはスキーマのワイルドカード・セットです。

    • objectは表名またはワイルドカードを使用した表のセットです。

    このデータベースでは疑問符(?)ワイルドカードはサポートされません。DB2 LUWではアスタリスク(*)ワイルドカードのみがサポートされます。

    パラメータ文はセミコロンで終了します。

    ワイルドカードの指定から表を除外するには、TABLEEXCLUDEパラメータを使用します。

    データのフィルタリング、マッピングおよび操作を制御するその他のオプションとその詳細は、『Oracle GoldenGateリファレンス』TABLE | MAPに関する項を参照してください。

  3. 構成に推奨されるオプションのExtractパラメータを入力します。このファイルは、GGSCIのEDIT PARAMSコマンドを使用して、処理を開始する前の任意の時点で編集できます。
  4. ファイルを保存して閉じます。

データ・ポンプの構成

次のステップでは、ローカル証跡を読み取り、データをネットワーク経由でリモート証跡に送信するデータ・ポンプを構成します。

  1. ソース・システムのGGSCIで、データ・ポンプ・パラメータ・ファイルを作成します。
    EDIT PARAMS name
    

    説明: nameは、データ・ポンプExtractグループの名前です。

  2. 次に示す順序でデータ・ポンプ・パラメータを入力します。パラメータ文ごとに新しい行を開始します。入力変数は異なるものになります。次の表の説明を参照してください。

    データ・ポンプExtractグループの基本パラメータ:

    EXTRACT extpump
    SOURCEDB FINANCE USERID ogg, PASSWORD AACAAAAAAAAAAA, BLOWFISH ENCRYPTKEY mykey
    RMTHOST fin1, MGRPORT 7809
    RMTTRAIL /ggs/dirdat/rt
    TABLE hr.*;
    
    パラメータ 説明
    EXTRACT group

    group nameは、データ・ポンプの名前です。

    SOURCEDB database USERID user, PASSWORD password, BLOWFISH ENCRYPTKEY keyname

    データベース接続情報を指定します。

    • SOURCEDBでは、デフォルトのDB 2 for iデータベースを指定します。

    • USERIDでは、Extractデータベース・ユーザー・プロファイルを指定します。

    • PASSWORDでは、ENCRYPT PASSWORDコマンドで暗号化されたユーザーのパスワードを指定します。PASSWORDキーワードの後に、暗号化されたパスワードを入力するか、貼り付けます。

    • BLOWFISH ENCRYPTKEY keynameでは、ローカルENCKEYSファイルの参照キーの名前を指定します。

    DECRYPTTRAIL BLOWFISH

    入力証跡を復号化します。

    RMTHOST hostname, MGRPORT portnumber
    • RMTHOSTでは、ターゲット・システムの名前またはIPアドレスを指定します。

    • MGRPORTでは、ターゲットでManagerが実行されるポートの番号を指定します。

    ENCRYPTTRAIL BLOWFISH

    Blowfish暗号化でリモート証跡を暗号化します。

    RMTTRAIL pathname

    リモート証跡のパス名を指定します。

    TABLE owner.table;

    処理する表を指定します。

    TABLE文はセミコロンで終えます。

    ワイルドカード指定から表を除外するには、TABLE文の後にTABLEEXCLUDE owner.tableパラメータを使用します。

  3. このマニュアルの他の箇所で推奨されているオプションのExtractのパラメータや『Oracle GoldenGateリファレンス』Extractパラメータの概要に関する項に示されているその他のパラメータを入力します。
  4. ファイルを保存して閉じます。

DB2 for iに変更を配信するためのReplicatの構成

次のステップでは、ターゲット・システムまたはリモートのWindowsまたはLinuxシステムで稼働しながら、DB2 for iターゲット・データベースにデータを適用するように、Replicatを構成します。異なるタイプのデータベース(Oracleデータベースなど)に変更を配信するようReplicatを構成するには、そのデータベース用のOracle GoldenGateインストレーションおよび構成ガイドの説明に従います。そのデータベース・タイプへの配信用に追加のパラメータや要件がある場合があります。

ノート:

ReplicatによるODBCを使用した接続をサポートするために、WindowsまたはLinuxマシン上にデータベースが存在する必要はありません。

チェックポイント表の作成

Replicatは、DB2 for iターゲット・データベースのチェックポイント表にチェックポイントを保持します。各チェックポイントは、Replicatトランザクション内で、ジャーナル処理される必要があるチェックポイント表に書き込まれます。チェックポイントはトランザクションに対して成功または失敗のいずれかであるため、プロセスまたはデータベースで障害が発生した場合でも、トランザクションは一度のみ適用されることがReplicatにより保証されます。

ジャーナル処理を指定してチェックポイント表を作成する一般的な方法は、次のとおりです。

  1. ターゲット・システムのGGSCIで、Replicatチェックポイント・ファイルを作成します。
    DEFAULTJOURNAL library_name/journal_name
    

    説明: library_nameはライブラリの名前、journal_nameはデフォルト・ジャーナルの名前です。

  2. チェックポイント表を追加します。
    ADD CHECKPOINTTABLE library_name.chkptab 
    
    Successfully created checkpoint table kgr.chkptab 
    
  3. チェックポイント表にジャーナル処理を追加します。
    ADD TRANDATA library_name.CHKPTAB
    

チェックポイント表の作成の詳細は、『Oracle GoldenGateの管理』を参照してください。

Replicatの構成

次のステップでは、特別なマッピングやデータの変換をしない基本的な方法でReplicatプロセスを構成します。

  1. ターゲット・システムのGGSCIで、Replicatパラメータ・ファイルを作成します。
    EDIT PARAMS name
    

    説明: nameは、Replicatグループの名前です。

  2. 次に示す順序でReplicatパラメータを入力します。パラメータ文ごとに新しい行を開始します。
    REPLICAT financer
    TARGETDB FINANCIAL USERID ogg, PASSWORD AACAAAAAAAAAAA, BLOWFISH ENCRYPTKEY mykey
    ASSUMETARGETDEFS
    -- Instead of ASSUMETARGETDEFS, use SOURCEDEFS if replicating from
    -- DB2 LUW to a different database type, or from a DB2 DB2 LUW source
    -- that is not identical in definitions to a target DB2 LUW database.
    -- SOURCEDEFS /users/ogg/dirdef/defsfile
    DISCARDFILE /users/ogg/disc
    MAP hr.*, TARGET hr2.*;
    
    パラメータ 説明
    REPLICAT group

    groupは、Replicatグループの名前です。

    TARGETDB database USERID user, PASSWORD password, BLOWFISH ENCRYPTKEY keyname

    データベース接続情報を指定します。

    • SOURCEDBでは、ターゲットDB2 LUWデータベースのデータ・ソース名(DSN)を指定します。

    • USERIDでは、Replicatデータベース・ユーザー・プロファイルを指定します。

    • PASSWORDでは、ENCRYPT PASSWORDコマンドで暗号化されたユーザーのパスワードを指定します。PASSWORDキーワードの後に、暗号化されたパスワードを入力するか、貼り付けます。

    • BLOWFISH ENCRYPTKEY keynameでは、ローカルENCKEYSファイルの参照キーの名前を指定します。

    DECRYPTTRAIL BLOWFISH

    入力証跡を復号化します。

    SOURCEDEFS pathname |
    ASSUMETARGETDEFS

    データ定義の解釈方法を指定します。ソース表とターゲット表の定義が異なる(異なるIBMデータベース間のレプリケート、IBMデータベースからOracleデータベースへのレプリケートなど)場合、SOURCEDEFSを使用します。pathnameには、DEFGENユーティリティを使用して作成したソース・データ定義ファイルを指定します。ソース表とターゲット表がすべてDB2 LUWで、定義が同じ場合、ASSUMETARGETDEFSを使用します。

    MAP owner.table, TARGET owner.table;

    ソース表とターゲット表の関係を指定します。MAP句ではソース・オブジェクトを、TARGET句ではソース・オブジェクトのマップ先となるターゲット・オブジェクトを指定します。

    • ownerは、スキーマ名またはライブラリ名です。

    • tableは、表の名前または複数の表に対するワイルドカード定義です。

    MAP文はセミコロンで終えます。

    ワイルドカード指定から表を除外するには、MAPEXCLUDEパラメータを使用します。

    データのフィルタリング、マッピングおよび操作を制御するその他のオプションとその詳細は、『Oracle GoldenGateリファレンス』MAPに関する項を参照してください。

  3. このマニュアルの他の箇所で推奨されているオプションのExtractのパラメータやExtractパラメータの概要に関する項に示されているその他のパラメータを入力します。
  4. ファイルを保存して閉じます。

デプロイの次のステップ

その柔軟性から、Oracle GoldenGateには、プロセスを起動する前に検討する必要のある機能やオプションが数多くあります。ビジネス・ニーズに合せてOracle GoldenGateをさらに構成するには、次のものを参照してください。

  • 特定のレプリケーション・トポロジを実現するためのその他の構成のガイドラインについては、『Oracle GoldenGateの管理』を参照してください。このガイドには、次の点に関する情報も含まれています。

    • Oracle GoldenGateのアーキテクチャ

    • Oracle GoldenGateのコマンド

    • Oracle GoldenGateの初期ロード方式

    • カスタマイズ機能の使用

    • 異なるデータを含む列のマッピング

    • データのフィルタリングと操作

  • このガイドで示されたOracle GoldenGate GGSCIコマンドおよびOracle GoldenGateパラメータの構文オプションとその詳細は、『Oracle GoldenGateリファレンス』を参照してください。

トランザクション変更のレプリケートを開始するタイミング

ソース・データとターゲット・データが同期している状態、つまり、ソース表とターゲット表の対応する行に同一のデータ値が含まれる場合にレプリケーションを開始する必要があります。現在のユーザー・アクティビティがない完全に新規のソース・データベースとターゲット・データベースから始める場合以外、変更取得プロセスおよび変更適用プロセスをアクティブにし、初期ロードをターゲットに適用する間に進行中のトランザクション変更を処理する必要があります。このプロセスは、初期同期またはインスタンス化と呼ばれます。初期ロードでは、ソース・データのポイントインタイム・スナップショットが取得されてターゲットに適用されると同時に、その時点以降に行われた変更がOracle GoldenGateによって保持されます。

インスタンス化オプションは、『Oracle GoldenGateの管理』初期ロードによるOracle GoldenGateのインスタンス化に関する項を参照してください。

インスタンス化中のExtractの起動

インスタンス化プロセス中にExtractを初めて起動してデータの取得を開始すると、指定された開始点より後に出現するすべてのトランザクション・データが取得されますが、それより前に出現するデータは取得されません。破棄される可能性のある進行中のトランザクションの途中でExtractが起動されないことを保証するには、取得対象の表を非アクティブ状態に設定します。ALCOBJコマンドを使用してシステムを制限付きの状態にしてオブジェクトまたはライブラリをロックするか、それらの表の現在のトランザクションをすべて特定の時点で停止します。

初期化の完了後、ロックしたオブジェクトのロックを解除することを忘れないでください。これを行うには、オブジェクトをロックしたセッションからログオフするか、OS/400コマンドラインからDLCOBJコマンドを使用します。

後の時点へのExtractの位置の変更

Extractの実行中ある時点で、データ・ストリーム内のExtractの位置を手動で設定する必要が生じることがあります。Extractの位置を再設定するには、GGSCIでALTER EXTRACTコマンドを使用します。任意のExtractの読取り位置の特定には、INFO EXTRACTコマンドで、ジャーナル・レシーバ情報を含め、Extract構成の各ジャーナルの位置を表示すると便利です。詳細は、『Oracle GoldenGateリファレンス』を参照してください。

ノート:

ジャーナルにトランザクション分割がある場合があるため、任意のジャーナルの位置が単独で過去に再設定された場合、項目の再処理によるレイテンシが原因で、遅行しているジャーナルの読取りが追い付くまで、すでに読み取られたジャーナルがストールすることがあります。

構成のテスト

本番マシンにデプロイする前に、テスト環境で構成をテストすることが重要です。これは、信頼できるソースのデータがレプリケーション・プロセスからアクセスされる可能性のあるアクティブ/アクティブまたは高可用性の構成で特に重要です。テストによって、ターゲットでの再ロードや他のトラブルシューティング・アクティビティのためにユーザー・アクティビティを中断することなく、構成の誤りやデータの問題を検出して解決できます。