プライマリ・コンテンツに移動
Oracle® GoldenGate Oracle GoldenGate for Informixのインストールおよび構成
12c (12.1.2)
E56361-04
  目次へ移動
目次

前
 
次
 

3 Oracle GoldenGateシステムの準備

この章では、Oracle GoldenGateのキャプチャおよびレプリケーションがサポートされるようにOracle GoldenGateが対話するデータベースを適切に構成する手順について説明します。ソース・システムのみに適用される手順、ターゲットのみに適用される手順、およびその両方に適用される手順があります。

この章は、次の項で構成されます。

3.1 ODBCデータベース接続の構成

Oracle GoldenGateは、Open Database Connectivity (ODBC)を介してInformix Dynamic Serverデータベースと接続します。Informix Dynamic Serverシステムのデータ・ソース名(DSN)を作成するには、次の手順に従います。DSNには、ODBCを介してInformix Dynamic Serverデータベースに接続する方法に関する情報が格納されています。Informix Dynamic Serverソースおよびターゲット・データベースごとに、DSNを作成します。

3.1.1 言語設定の構成

Oracle GoldenGateの適用プロセス(Replicat)では、文字型の列にデータが含まれている場合に、あるキャラクタ・セットから別のキャラクタ・セットへのデータ変換がサポートされます。このサポートを有効にするには、ODBCの設定時に、次のように言語パラメータが正しく設定されていることを確認します。

CLIENT_LOCALE=en_us.8859-1

DB_LOCALE=en_us.8859-1

サポート情報と制限の詳細は、Oracle GoldenGate for Windows and UNIXの管理を参照してください。

3.1.2 UNIXでのODBCの構成

次の手順では、UNIXシステムでODBCを構成およびテストします。

3.1.2.1 ODBCドライバ・マネージャのダウンロード

UNIXのInformix ODBCドライバには、ODBCドライバ・マネージャが必要です。一般的なODBCドライバ・マネージャは、UNIX ODBCプロジェクトのWebサイトから無料で入手できます。

http://www.unixodbc.org/

ソースからコンパイルする必要があります。2.3以降のバージョンをダウンロードする必要があります。

ODBCドライバ・マネージャをソース・ファイルからコンパイルする場合、Informix ODBCドライバが64ビット・バージョンのときは、64ビットとしてコンパイルする必要があります。これには、configuremakeおよびmake installを実行する前に、環境変数' CFLAGS="-DBUILD_REAL_64_BIT_MODE" 'を設定する必要があります。

3.1.2.2 odbc.iniファイルの構成

UNIXの場合は、odbc.iniファイルを構成する必要があります。Informixインストールに付属しているファイルを使用できます。これは$INFORMIXDIR/etc/odbc.iniです。次の例に従い、DSNを構成します。

;---------------------------------------------------------------------------; IBM INFORMIX ODBC Sample File;; File:             odbc.ini;;---------------------------------------------------------------------------[ODBC Data Sources]Infdrv1=IBM INFORMIX ODBC DRIVERInfdrv2=IBM INFORMIX ODBC DRIVER;; Define ODBC Database Driver's Below - Driver Configuration Section;[Infdrv1]Driver=/home/informix/ifx1170/lib/cli/iclit09b.soDescription=IBM INFORMIX ODBC DRIVERDatabase=stores_demoLogonID=odbcpwd=odbcServername=ids_server1[Infdrv2]Driver=/home/informix/ifx1170/lib/cli/iclis09b.soDescription=IBM INFORMIX ODBC DRIVERDatabase=stores_demoLogonID=odbcpwd=odbcServername=ids_server2CursorBehavior=0CLIENT_LOCALE=en_us.8859-1DB_LOCALE=en_us.8859-1TRANSLATIONDLL=/home/informix/ifx1170/lib/esql/igo4a304.so;; UNICODE connection Section;; adding here new ODBC DSN[superstores]Driver=/home/informix/ifx1170/lib/cli/iclis09b.soDatabase=superstores_demoServername=ol_informix1170CursorBehavior=0CLIENT_LOCALE=en_us.8859-1DB_LOCALE=en_us.8859-1TRANSLATIONDLL=/home/informix/ifx1170/lib/esql/igo4a304.so[ODBC];uncomment the below line for UNICODE connection;UNICODE=UCS-4;; Trace file Section;Trace=0TraceFile=/tmp/odbctrace.outInstallDir=/home/informixTRACEDLL=idmrs09a.so

3.1.2.3 odbcinst.iniファイルの構成

次の例に示すように、内容を$INFORMIXDIR/etc/odbcinst.iniファイルに追加する必要もあります。

;---------------------------------------------------------------------------; IBM INFORMIX ODBC Sample File ;; File: odbcinst.ini;;---------------------------------------------------------------------------[ODBC Drivers]IBM INFORMIX ODBC DRIVER=Installed[IBM INFORMIX ODBC DRIVER]Driver=/home/informix/ifx1170/lib/cli/iclit09b.soSetup=/home/informix/ifx1170/lib/cli/iclit09b.soAPILevel=1ConnectFunctions=YYYDriverODBCVer=03.51FileUsage=0SQLLevel=1smProcessPerConnect=Y

3.1.2.4 ODBC構成のテスト

ODBC構成をテストするには、INFORMIX環境変数とODBCライブラリを設定してから、次のコマンドを発行する必要があります。

export PATH ${INFORMIXDIR}/bin:path_to_ODBC_driver_manager/bin:${PATH}

export LD_LIBRARY_PATH $INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:path_to_ODBC_driver_manager/lib:$LD_LIBRARY_PATH

export ODBCINI =/etc/odbc.ini  # depends which odbc.ini file contains your DSN entry

isql -v superstores informix informix123

3.1.3 WindowsでのODBCの構成

この項では、WindowsシステムでODBCを構成する方法について説明します(DSNの構成を含む)。ユーザーDSNおよびシステムDSNの両方がサポートされているため、どちらのDSNも作成できます。

次のプロセスでは、WindowsのデフォルトODBCクライアントを使用します(詳細は、状況依存ヘルプおよびIBM Informix ODBCドライバ・プログラマのマニュアルを参照してください)。

  1. 「スタート」「コントロール パネル」「管理ツール」「データ ソース (ODBC)」の順に選択して、デフォルトODBCクライアントを実行します。

  2. (オプション)システムDSNを構成するには、「システム DSN」タブをクリックします。以降のすべての手順は、いずれのDSNの構成でも同じです。

  3. 「追加」をクリックします。

    「データ ソースの新規作成」ダイアログ・ボックスが表示されます。

  4. 「データ ソースの新規作成」で、Informix Dynamic Serverバージョンに一致するクライアントを選択します。

  5. 「完了」をクリックします。データ ソースの新規作成ウィザードが表示されます。

  6. 次を入力します。

    • 名前: 任意の名前にできます。Windowsクラスタで、クラスタ内のすべてのノードにわたって同じ名前を使用します。

    • 説明: (オプション)このデータ・ソースの説明を入力します。

    • サーバー: Informix Dynamic Serverを選択します。Extractの場合は、syscdcv1データベース・フィールドを選択します。Replicatの場合は、データベース・フィールドをターゲット・データベースの名前として選択します。DSNは、このデータベースである必要があります

  7. 「次へ」をクリックします。

  8. ログイン認証で、Oracle GoldenGateの「ユーザーが入力する Informix Dynamic Server 用のログイン ID とパスワードを使う」を選択し、データベース資格証明を使用します。informixユーザーのログイン情報を指定します。informixユーザーは、すべてのOracle GoldenGateプロセスで使用される必要があります

  9. 「次へ」をクリックします。

  10. デフォルト・データベースが、Oracle GoldenGateが接続するデータベースに設定されていない場合は、「既定のデータベースを以下のものに変更する」をクリックして、正しい名前を選択します。

  11. ANSIを使用するためのその他の設定を設定します。

  12. 「次へ」をクリックします。

  13. 次のページはデフォルト設定のままにします。

  14. 「完了」をクリックします。

  15. 「データ ソースのテスト」をクリックし、接続をテストします。

  16. 確認ダイアログ・ボックスと「データ ソースの新規作成」ダイアログ・ボックスを閉じます。

  17. 各Informix Dynamic Serverソースおよびターゲット・データベースで、この手順を繰り返します。

3.2 処理のための表の準備

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

3.2.1 ターゲット表に対するトリガーおよびカスケード制約の無効化

ターゲット表のトリガー、カスケード削除制約およびカスケード更新制約を無効化するか、Oracle GoldenGateデータベース・ユーザーによる変更を無視するようにそれらを変更します。Oracle GoldenGateでは、トリガーまたはカスケード制約によって生じるDMLをレプリケートします。ターゲット表で同じトリガーまたは制約を有効にした場合、レプリケートされたバージョンのためにそのトリガーまたは制約が冗長になり、データベースによってエラーが返されます。ソース表がemp_srcおよびsalary_src、ターゲット表がemp_targおよびsalary_targである場合の次の例を検討してください。

  1. emp_srcに削除が発行されます。

  2. それによって、削除がsalary_srcにカスケードされます。

  3. Oracle GoldenGateによって、両方の削除がターゲットに送信されます。

  4. 親削除が最初に到達し、emp_targに適用されます。

  5. 親削除によって、削除がsalary_targにカスケードされます。

  6. salary_srcからカスケードされた削除がsalary_targに適用されます。

  7. 行はすでに手順5で削除されたため、その行を見つけることはできません。

3.2.2 行識別子の割当て

Oracle GoldenGateでは、レプリケートされた更新および削除の正しいターゲット行を検索するために、ソース表とターゲット表にいくつかの一意の行識別子が必要です。主キーなど、定義されている行識別子が表にない場合は、SQL WHERE句で使用可能なすべての列から行識別子がOracle GoldenGateによって構築されます。

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

TABLE文またはMAP文でKEYCOLS句を使用しない場合には(3.2.2.2項を参照)、Oracle GoldenGateにより、使用される行識別子が次の優先順位で選択されます。

  1. 主キーの制約列。

  2. 主キーが表に存在しない場合は、LOB以外のすべての列がOracle GoldenGateによって使用され、主キーが形成されます。

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

表に前述のタイプの行識別子のいずれかがない場合や、それらの識別子を使用しないほうが適切な場合、表に常に一意の値を含む列があるときは、代替キーを定義できます。この代替キーは、ExtractのTABLEパラメータおよびReplicatのMAPパラメータにKEYCOLS句を指定して定義します。指定されたキーは、Oracle GoldenGateが検出する既存の主キーまたは一意キーを上書きします。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

3.2.3 キーのない表での行の変更の制限

ターゲット表に主キーまたは一意キーがない場合は、重複行が存在する可能性があります。そのような表では、Oracle GoldenGateが必要以上に多く行を更新または削除し、その結果、注意を促すエラー・メッセージが表示されずに、ソース・データおよびターゲット・データが同期しなくなる可能性があります。更新される行数を制限するには、Replicatパラメータ・ファイルでLIMITROWSオプションを指定してDBOPTIONSパラメータを使用します。LIMITROWSを使用すると、処理されるのは1行のみのため、ターゲット・システムでのOracle GoldenGateのパフォーマンスが向上することがあります。

3.2.4 配列処理を使用したパフォーマンスの改善

Replicatパラメータ・ファイルでBATCHSQLパラメータを使用することで、Replicatのパフォーマンスを改善できます。BATCHSQLを使用すると、Replicatは、一度に1つずつSQL文を適用するかわりに配列処理を使用します。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

3.3 キャプチャ用の論理ログの準備

この項では、トランザクション・ログのサイズ設定と、Oracle GoldenGate構成に含める表のロギングを有効化する手順について説明します。ログに記録された表の変更データは、Extractキャプチャ・プロセスに渡されます。

3.3.1 論理ログのサイズ設定

LOGSIZEおよびLOGFILES構成パラメータでは、論理ログ・ファイルのサイズと数を指定するため、間接的にOracle GoldenGateチェックポイントに影響を与えます。これらは調整が必要になる場合があります。

Informixでは、アクティブ・ログ・ファイルをローリング・ベースでアーカイブします。たとえば、オンライン・ログ・ファイルが10ある場合、番号10のファイルが一杯になると、番号1のログ・ファイルがアーカイブされ、ログ・ライターが新しいオンライン・ログに書き込む準備ができます。

Oracle GoldenGateで現在処理中のログは、次のアーカイブになるログになることはありません。GGSCIでINFO EXTRACT groupコマンドを発行すると、Oracle GoldenGateで現在処理中のLSNを確認できます。次に、onstat-1コマンドを使用して、Informixサーバーのオンライン・ログ・ステータスを確認します。この情報に基づいて、オンライン・ログ・ファイルの数およびサイズを定義し、Extractが処理を終了するまで、アーカイブされないようにすることができます。次のように、ファイル・サイズを1048576に構成することをお薦めします。

onmode -wf LOGSIZE=1048576

3.3.2 ロギング・プロパティの構成

Oracle GoldenGate構成に含める表の完全行ロギングを有効にする必要があります。キャプチャ用にログ・データをExtractプロセスに渡せるように、ロギングをソース・システムで有効にする必要があります。双方向構成使用している場合は、構成の両方のシステムでロギングを有効にする必要があります。

3.3.2.1 表の完全行ロギングの有効化

Oracle GoldenGate GGSCIインタフェースを使用して、完全行ロギングを有効にする必要があります。

  1. ソース・システムでGGSCIを実行します。

  2. informixユーザーとしてDBLOGINコマンドを発行します。セキュリティ構成に応じて、次のいずれかのオプションを使用します。

    • Oracle GoldenGate資格証明ストアを使用している場合:

      DBLOGIN USERIDALIAS alias_of_informix_user
      
    • Oracle GoldenGate資格証明ストアを使用していない場合:

      DBLOGIN SOURCEDB DSN_of_syscdc USERID informix PASSWORD informix_password algorithm ENCRYPTKEY {keyname | DEFAULT}]
      

    DBLOGIN構文の詳細は、『Oracle GoldenGateリファレンスfor Windows and UNIX』を参照してください。

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

    ADD TRANDATA database.schema.table
    

    コマンド入力でスキーマおよび表名コンポーネントにワイルドカードを使用できます。

ADD TRANDATAの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

3.4 LOBのキャプチャのサポート

LOBをフェッチするようにExtractを構成するには、LOBが格納されている表を指定するTABLE文にFETCHCOLSオプションを含めます。TABLE文は、Oracle GoldenGateによるレプリケーション用にキャプチャするデータベース・オブジェクトを指定するのに使用されます。TABLEおよびその他の構成パラメータの詳細は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』および『Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIX』を参照してください。

Informix ODBCドライバには、クラシック・キャプチャ・モードのReplicatでエラーを発生させる既知のメモリー・リークがあります。この問題を修正するには、次の手順を使用します。

  1. CSDK 4.10 FC4を別のディレクトリにインストールします。

  2. LD_LIBRARY_PATHまたはライブラリ検索のそれぞれの動作固有のパスを、このCSDKディレクトリにエクスポートします。次に例を示します。

    export LD_LIBRARY_PATH=CSDKInstallPath/lib/cli:CSDKInstallPath/lib/esql:$LD_LIBRARY_PATH 
    
  3. STOP MANAGERを実行します。

  4. START MANAGERを実行します。

  5. START REPLICATを実行します。