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インスタンス内のすべてのプロセスに影響するパラメータが含まれています。

GGSCHEMAは、Oracle GoldenGate 21c (21.3.0)以降の必須パラメータであり、必要なOracle GoldenGateデータベース・オブジェクトに対してOracle GoldenGateがリモート・システムで使用するスキーマを定義します。

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

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

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

ノート:

これは、Oracle GoldenGate 11.2以前の証跡を書き込む場合にのみ必要となります。
  • ソースで、取得された操作に関する完全な情報をReplicatプロセスに提供するため。

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

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

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

SSLの有効化

SSL接続を有効にするには、DSN構成ファイル内でSSL=1を設定します。IBM i Access ODBCドライバを使用したSSL接続の設定方法については、LinuxからDb2 for iへのSSL ODBC接続およびLinux用ACS ODBCドライバでのOpenSSLのサポートを参照してください。

OpenSSLを使用してSSLを設定することをお薦めします。DSN構成ファイル内でSSLを有効にすると、jt400ライブラリを使用して確立されたJAVA接続でSecureAS400接続が使用されるようにもなります。

ユーザー・プロファイルとセキュリティ権限

Oracle GoldenGateをインストールするユーザーには、Oracle GoldenGateインストール・ディレクトリに対する読取り権限と書込み権限が必要です。これらの権限は、後で、サブフォルダの作成や特定のプログラムの実行のための手順で必要になります。

また、Db2 for iにOracle GoldenGateをスムーズにインストールできるようにするには、このユーザーに次の権限が必要です。

  • *ALLOBJ特殊権限(インストールやアップグレード、またはHEARTBEAT ADD/DELETEコマンドでのみ必要)

    ノート:

    Oracle GoldenGateの新規インストール、または最新リリース・バージョンへのアップグレードの場合、インストールに使用するユーザー・プロファイルまたはグループ・プロファイルで、GGSCIからDBLOGINコマンドを1回のみ実行してIBM iシステム上のOracle GoldenGateインストールのための新しいオブジェクトのインストールを完了する必要があります。

    ノート:

    Oracle GoldenGateライブラリ(GGSCHEMAで指定されている)内のオブジェクトの所有権をOracle GoldenGateの専用ユーザー・プロファイルに変更する必要があります。そのユーザーに*ALLOBJ権限がない場合は、*ALLOBJ権限がある他のユーザーが、Db2 for iシステムにサインインし、それらのオブジェクトの所有権を、Oracle GoldenGateインストールに使用するユーザー・プロファイルまたはグループ・プロファイルに変更する必要があります。
  • RSTOBJコマンドに対する権限(通常は*ALLOBJで使用可能)

  • 必要な場合にライブラリを作成できること

専用ユーザー・プロファイル・アカウント

Db2 for iデータベース上のOracle GoldenGateプロセスに専用のユーザー・プロファイルまたはグループ・プロファイルを割り当て、すべてのOracle GoldenGateプロセスで使用することをお薦めします。このユーザー・プロファイルは、他のどのアプリケーションでも使用しないでください。

専用ユーザー・プロファイルには、Oracle GoldenGateが動作するオブジェクトに対する権限のみを付与する必要があります。Oracle GoldenGateプロセスによってアクセスされない特定の変更データがある場合には、そのような変更データをジャーナル(Oracle GoldenGateとその専用ユーザー・プロファイルによってアクセスされる)に含めないでください。すべてのOracle GoldenGateプロセスに、GGSCHEMAで指定されているとおりの、Oracle GoldenGateインストール・ライブラリ内のオブジェクト読取り、書込みおよび削除権限が必要です。

DB2 for iシステムでのセキュリティ権限

ExtractおよびReplicatのユーザー・プロファイルには、少なくとも次の権限を割り当てる必要があります。
  • Oracle GoldenGateが動作できるようにする最も簡単な方法は、Oracle GoldenGateユーザー・プロファイルに*ALLOBJ権限を割り当てることです。ただし、これは必須ではありません。

  • Managerプロセスには、他のすべてのOracle GoldenGateプロセスを制御する権限が必要です(DB2 for i *JOBCTL権限)。

  • Oracle GoldenGateユーザー・プロファイルには、SQLカタログ(デフォルトでは、すべてのユーザーがアクセス可能)を含むQSYS2ライブラリの*FILEオブジェクトに対する少なくとも*USE権限が必要です。

  • Extractユーザー・プロファイルでアクセスされるシステム上のすべての*FILE (表)および*JRNRCV(ジャーナル・レシーバ)オブジェクトに対して、少なくとも*USE権限(*OBJOPR*READ*EXECUTE)を割り当てます。

  • Extractユーザー・プロファイルでアクセスされる*JRN (ジャーナル)オブジェクトに対して、*USE権限(*OBJOPR*READ*EXECUTE)に加えて、次の権限を割り当てます: *OBJEXIST*OBJREFおよび*ADD

  • Replicatユーザー・プロファイルでアクセスされるシステム上のすべての*FILEオブジェクトに対して*CHANGE権限を割り当てます。

Extractプロセスを実行するOracle GoldenGateユーザー・プロファイルには、QSYS/QPMLPMGTサービス・プログラムに対する*USE権限が必要です。

これらの権限は、5250端末セッションを介したネイティブDB2 for iインタフェース、またはIBM社から入手可能なDB2 for i Navigator製品を使用して付与する必要があります。

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

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

ノート:

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

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

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

プライマリExtractの構成

次のステップでは、トランザクション・データをソースDB2 for iから取得し、一時的な格納のためにデータをローカル証跡に書き込むプライマリ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 library/file;
    TABLE library/file(member);

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

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

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

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

    libraryは、IBM iライブラリ名またはワイルドカードを使用したライブラリのセットです。

    fileは、IBM i物理ファイル名またはワイルドカードを使用した物理ファイルのセットです。

    memberは、IBM i物理ファイル・メンバー名またはワイルドカードを使用したメンバー名のセットです。

    IBM iネイティブ名の形式(オプション・メンバーを含むライブラリ/ファイル)を使用する場合、有効なワイルドカードは、少なくとも1つの有効な文字の後に末尾のアスタリスク(*)または*ALLが続く名前のみです。

    ノート:

    メンバー名はオプションであり、オブジェクト名の一部として証跡にメンバー名を書き込む必要がある場合に指定する必要があります。メンバー名を指定しない場合、物理ファイル内のすべてのメンバーは、証跡内の単一のオブジェクトとして暗黙的にマージされます。

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

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

  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 schema.object;
    TABLE library/file;
    TABLE library/file(member);

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

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

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

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

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

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

ノート:

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

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

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

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

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

    チェックポイント・ファイルに使用されるジャーナル名を設定します。デフォルトは<GGSCHEMA>/OGGJRNです。これは、DEFAULTJOURNALコマンドを使用して現在のGGSCIセッションのデフォルトを設定することで変更できます。DEFAULTJOURNALコマンドの構文は次のとおりです。

    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
    DISCARDFILE /users/ogg/disc
    MAP hr.*, TARGET hr2.*;
    
    パラメータ 説明
    REPLICAT group

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

    TARGETDB database USERID user, PASSWORD password, BLOWFISH ENCRYPTKEY keyname

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

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

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

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

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

    DECRYPTTRAIL BLOWFISH

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

    MAP owner.table, TARGET owner.table;
    MAP owner.table, TARGET library/file;
    MAP library/file, TARGET owner.table;
    MAP library/file, TARGET library/file;

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

    • ownerはスキーマ名です。

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

    • libraryは、IBM iライブラリ名または複数のライブラリに対するワイルドカード定義です。

    • fileは、IBM i物理ファイル名または複数の物理ファイルに対するワイルドカード定義です。

    ノート:

    また、file(member)という形式の物理ファイルを使用して許可されるオプションの物理ファイル・メンバー名もあり、メンバーを複数のメンバーに対するワイルドカード定義にすることもできます。

    ワイルドカード指定から表を除外するには、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リファレンス』を参照してください。

構成のテスト

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