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

前
次

4 IBM DB2 for iのサポート対象の理解

DB2 for iでOracle GoldenGateを使用すると、サポートされている類似のまたは異なるDB2 for iバージョン間でデータをレプリケートしたり、DB2 for iデータベースと他のタイプのデータベースとの間でデータをレプリケートできます。DB2 for iのOracle GoldenGateでは、このドキュメントに特に記載がないかぎり、データのフィルタ処理、マッピングおよび変換がサポートされます。

DB2 for i用Oracle GoldenGateをDB2 for iソース・システムで直接実行し、レプリケーション用トランザクション・ジャーナルからターゲット・システムへデータを取得します。ターゲットDB2 for iデータベースにデータを適用するには、Oracle GoldenGateをDB2 for iターゲット・システムで直接実行するか、リモートのWindowsまたはLinuxシステムで実行します。リモート・システムにインストールした場合は、ReplicatがODBC接続を使用してデータを配信するため、Oracle GoldenGateソフトウェアはDB2 for iターゲットにはインストールしません。

注意:

DB2 for iプラットフォームでは、1つ以上のジャーナルを使用してトランザクション変更データのレコードが保持されます。ベースとなるOracle GoldenGateの管理ドキュメントやリファレンス内の用語との一貫性を保つため、「ジャーナル」という語を使用する必要性がない場合、「ログ」または「トランザクション・ログ」という語を「ジャーナル」と区別せずに使用します。

内容は次のとおりです。

4.1 サポートされているDB2 for iデータ型

Oracle GoldenGateでは、「サポートされていないDB2 for iデータ型」に示されているデータ型を除くすべてのDB2 for iデータ型がサポートされます。

サポートの制限事項

Extractプロセスは、TIMESTAMP(0)からTIMESTAMP(6)までの取得および適用を完全にサポートします。ExtractはTIMESTAMP(7)からTIMESTAMP(12)までの取得も行いますが、データをマイクロ秒(最大6桁の端数)までで切り捨て、警告をエラー・ログに出力します。Replicatは、DB2 for iターゲットで他のソースからのタイムスタンプ・データをTIMESTAMP(7)からTIMESTAMP(12)までに適用する際、マイクロ秒までで切り捨てます。

Oracle GoldenGateでは、0001/01/03:00:00:00.000000から9999/12/31:23:59:59.999999までのタイムスタンプ・データがサポートされます。タイムスタンプがGMTからローカル時間に変換されると、これらの制限も変換後のタイムスタンプに適用されます。タイムゾーンに応じて、変換により時間が追加または引かれる場合があり、これにより、タイムスタンプがサポートされている上限を超えたり、下回ったりすることがあります。

4.2 サポートされていないDB2 for iデータ型

Oracle GoldenGateでは、次のDB2 for iデータ型はサポートされません。

  • XML

  • DATALINK

  • DECFLOAT

  • ユーザー定義型

4.3 DB2 for iについてサポートされているオブジェクトおよび操作

Oracle GoldenGateでは、次のDB2 for iオブジェクトと操作がサポートされます。

  • DML操作の抽出およびレプリケーション

  • 行の最大長がデータベースでサポートされている表。

  • データベースでサポートされている列の最大数、最大サイズまでの数およびサイズの列を含む表。

  • WHERE句なしのDELETE FROM SQL文およびClear Physical File Member (CLRPFM)

  • マテリアライズ問合せ表自体ではなく、MQTの基となるベース表。ターゲット・データベースは、Replicatによってベース表に適用された変更に基づいて、自動的にMQTの内容を整備します。

  • メンバーを含むライブラリ(ネイティブ)名と、SQL名のどちらも使用できます。

  • パーティション表

  • 自動ハートビート表のサポートに関する制限事項は次のとおりです。

    • ADD HEARTBEATTABLEコマンドは、ogghbfreq¿という新しいファイルをOracle GoldenGateのビルド・フォルダ内に作成します。paseハートビート・プログラムで頻度の値をこのファイルから読み取るため、このファイルは削除しないでください。

    • Oracle GoldenGateビルド・フォルダには、他にもogghbという実行可能ファイルがあります。

    • ogghbという追加プロセスは、ADD HEARTBEATTABLEコマンドに指定された時間から実行が開始され、DELETE HEARTBEATTABLEコマンドでハートビートを無効にするまで実行されます。このプロセスは、強制終了されたとしても、自動的に再開されます。このプロセスをシステムから削除するには、DELETE HEARTBEATTABLEコマンドを使用します。

    • PURGE_FREQUENCYオプションまたはRETENTION_TIMEオプションを指定したALTER HEARTBEATTABLEコマンドを使用して、ハートビートの頻度を変更すると、実施にはおよそ60秒 + 変更前の頻度(秒)が必要となります。

    • ADD HEARTBEATTABLE間には30秒の初期遅延があり、ハートビート・シード表の最初のレコードが更新されます。

4.4 DB2 for iについてサポートされていないオブジェクトおよび操作

Oracle GoldenGateでは、次のDB2 for iに対するオブジェクトおよび操作はサポートされません。

  • DDL操作

  • 末尾に空白を含むスキーマ名、表名および列名。

  • データベースの複数インスタンス

  • マルチジャーナル機能では、複数のジャーナル間での1つのトランザクションのマルチジャーナル同期がサポートされていません。

4.5 DB2 for iに対してサポートされないOracle GoldenGateパラメータ

この項には、DB2 for iプラットフォームに対してサポートされないOracle GoldenGate構成パラメータの一部を示します。Oracle GoldenGateのパラメータとそのパラメータでサポートされるデータベースの詳細は、Oracle GoldenGateパラメータに関する項を参照してください。

  • BATCHSQL (V5R4ではサポートされない、i6.1のみ)
  • BR
  • ASCIITOEBCDICおよびEBCDICTOASCII
  • BINARYCHARS
  • LOBMEMORY
  • TRAILCHARSETEBCDIC
  • AES暗号化を使用する任意の暗号化オプション

4.6 サポートされているオブジェクト命名規則

Oracle GoldenGateでは、SQL命名規則がサポートされます。library/file(member)という形式のネイティブ・ファイル・システム名もサポートされます。

ネイティブ(システム)名の場合、Oracle GoldenGateでワイルドカードに関する標準のDB2 for i命名規則がサポートされ、*ALLまたは名前の一部分の後ろにアスタリスク(*)ワイルドカードを付加したものを使用できます。次に例を示します。

  • library/*all(*all)

  • library/a*(a*)

  • library/abcde*

Oracle GoldenGateでは、ライブラリ名に対するワイルドカードの使用は許可されません。

メンバー名はオプションで省略できます。その場合、すべてのメンバーのデータが抽出されますが、ライブラリ名とファイル名のみが取得され、証跡に書き込まれるレコードに含められます。その結果、データは、ソースの1つのメンバーのみから取得されたように見え、メンバー間でキーの重複がある場合、ターゲットで整合性の競合が起きる可能性があることに注意してください。証跡のレコードにメンバー名を含めるには、メンバーを明示的に含めるか、ワイルドカードのメンバー指定を使用して含めます。

SQL名の場合、DB2 for iシステムでのSQLの標準の処理に従って、基になるネイティブ・ファイルの最初のメンバーのみが抽出されます。SQL名の場合、Oracle GoldenGateで表名に対してはワイルドカードの使用はサポートされますが、スキーマ名に対してはサポートされません。ワイルドカードを使用したSQL名の詳細は、Oracle GoldenGateの管理のOracle GoldenGateの入力におけるオブジェクト名の指定を参照してください。

4.7 サポートされるキャラクタ・セット

DB2 for I Extractのデフォルトの動作では、すべての文字データがUnicodeに変換されます。テキスト・データをUTF-8に変換するパフォーマンスのオーバーヘッドがかなり低減されています。ただし、データをネイティブ・キャラクタ・セットで送信する必要がある場合は、CHARSETおよびCOLCHARSETパラメータを使用して、次のようにデフォルト動作をオーバーライドできます。『Oracle GoldenGateリファレンス』のCHARSETおよびCOLCHARSETに関する項を参照してください

特定の列にCOLCHARSET PASSTHRUを指定すると、その列はUnicodeに変換されず、証跡メタデータでソース・キャラクタ・セットが指定されます。これにより、Replicatは列のネイティブ・キャラクタ・セットで証跡データを正しく処理でき、ソース側のパフォーマンスが向上します。証跡に複数のキャラクタ・セットを含めるには、列をPASSTRHUモードで構成する必要があります。次に例を示します。

TABLE GGSCHEMA.TABLE1, CHARSET(PASSTHRU);  
TABLE GGSCHEMA.TABLE2, COLCHARSET(PASSTHRU, COL1, COL2, COL3);

COL1COL2COL3は、有効なCCSIDを持つCHARまたはVARCHARフィールドです。

CCSID 65535の文字フィールド(BINARYまたはCHAR FOR BIT DATAフィールドと同等)の場合、列の有効なキャラクタ・セットによる列キャラクタ・セットのオーバーライドを指定できます。Oracle GoldenGateプロセスはフィールドをバイナリ・フィールドとして認識しなくなり、通常の文字フィールドとして認識します。データがUTF8に変換されます。バイナリ・フィールドに対して特定の文字エンコーディングを指定するCOLCHARSETを指定した場合、PASSTHRU機能は使用できません。UTF-8への変換により、このタイプのオーバーライドがHP NonStopと互換性を持ち、また、ソースからのデータが基本的にASCII互換であることを必要とする他のプラットフォームとも互換性を持ちます。CCSID 65535のCHARまたはVARCHARフィールドのデフォルトの動作では、フィールドは変換されず、バイナリとしてバインドされます。次に例を示します。
TABLE GGSCHEMA.TABLE3, COLCHARSET(IBM037, COL1, COL2);

COL1およびCOL2は、CCSID 65535を持つCHARまたはVARCHARフィールドです。

列に含まれるデータのキャラクタ・セットが目的と異なる場合、有効なキャラクタ・セット(CCSID 655350以外)を使用して、CHARCLOBまたはVARCHAR列の文字のオーバーライドを設定できます。たとえば、CCSIDが1047に設定されたCHAR列があるが、列に含まれるデータが実際はCCSID 37の場合、ExtractまたはDEFGENパラメータ・ファイルで列のオーバーライドCCSIDを設定すると、処理の際に、プロセスはデータがCCSID 1047ではなく実際にはCCSID 37だと認識します。データはCCSID 37として扱われますが、UTF8に変換されます。

CHARSETのオーバーライドとPASSTHRUを一緒に使用することはできません。次に例を示します。

TABLE GGSCHEMA.TABLE4, COLCHARSET(IBM037, COL1);

COL1CHARまたはVARCHARフィールドで、CCSID 1047に定義されていますが、データは実際にはCCSID 37です。

ソース列の列キャラクタ・セットがOracle GoldenGate ICUでサポートされる有効なキャラクタ・セットでない場合、ExtractまたはDEFGENパラメータ・ファイルでCOLCHAR SETPASSTHRUを指定すると、PASSTHRU動作が無視され、列のデータがUnicodeに変換されます。これにより、Replicatでデータが変換可能になります。データはICU表現を持たないため、データが実際にどのキャラクタ・セットに属するのか示す方法はありません。