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の管理ドキュメントやリファレンス内の用語との一貫性を保つため、「ジャーナル」という語を使用する必要性がない場合、「ログ」または「トランザクション・ログ」という語を「ジャーナル」と区別せずに使用します。
内容は次のとおりです。
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からローカル時間に変換されると、これらの制限も変換後のタイムスタンプに適用されます。タイムゾーンに応じて、変換により時間が追加または引かれる場合があり、これにより、タイムスタンプがサポートされている上限を超えたり、下回ったりすることがあります。
親トピック: IBM DB2 for iのサポート対象の理解
Oracle GoldenGateでは、次のDB2 for iデータ型はサポートされません。
XML
DATALINK
DECFLOAT
ユーザー定義型
親トピック: IBM 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秒の初期遅延があり、ハートビート・シード表の最初のレコードが更新されます。
親トピック: IBM DB2 for iのサポート対象の理解
Oracle GoldenGateでは、次のDB2 for iに対するオブジェクトおよび操作はサポートされません。
DDL操作
末尾に空白を含むスキーマ名、表名および列名。
データベースの複数インスタンス
マルチジャーナル機能では、複数のジャーナル間での1つのトランザクションのマルチジャーナル同期がサポートされていません。
親トピック: IBM DB2 for iのサポート対象の理解
この項には、DB2 for iプラットフォームに対してサポートされないOracle GoldenGate構成パラメータの一部を示します。Oracle GoldenGateのパラメータとそのパラメータでサポートされるデータベースの詳細は、Oracle GoldenGateパラメータに関する項を参照してください。
BATCHSQL
(V5R4ではサポートされない、i6.1のみ)BR
ASCIITOEBCDIC
およびEBCDICTOASCII
BINARYCHARS
LOBMEMORY
TRAILCHARSETEBCDIC
親トピック: IBM DB2 for iのサポート対象の理解
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の入力におけるオブジェクト名の指定を参照してください。
親トピック: IBM DB2 for iのサポート対象の理解
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);
COL1
、COL2
、COL3
は、有効なCCSIDを持つCHAR
またはVARCHAR
フィールドです。
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以外)を使用して、CHAR
、CLOB
またはVARCHAR
列の文字のオーバーライドを設定できます。たとえば、CCSIDが1047に設定されたCHAR
列があるが、列に含まれるデータが実際はCCSID 37の場合、ExtractまたはDEFGENパラメータ・ファイルで列のオーバーライドCCSIDを設定すると、処理の際に、プロセスはデータがCCSID 1047ではなく実際にはCCSID 37だと認識します。データはCCSID 37として扱われますが、UTF8に変換されます。
CHARSET
のオーバーライドとPASSTHRU
を一緒に使用することはできません。次に例を示します。
TABLE GGSCHEMA.TABLE4, COLCHARSET(IBM037, COL1);
COL1はCHAR
またはVARCHAR
フィールドで、CCSID 1047に定義されていますが、データは実際にはCCSID 37です。
ソース列の列キャラクタ・セットがOracle GoldenGate ICUでサポートされる有効なキャラクタ・セットでない場合、ExtractまたはDEFGENパラメータ・ファイルでCOLCHAR SETPASSTHRU
を指定すると、PASSTHRU
動作が無視され、列のデータがUnicodeに変換されます。これにより、Replicatでデータが変換可能になります。データはICU表現を持たないため、データが実際にどのキャラクタ・セットに属するのか示す方法はありません。
親トピック: IBM DB2 for iのサポート対象の理解