1 DB2 LUWのサポート対象の理解

この章では、DB2 LUWのためのOracle GoldenGateでサポートされているデータベースと表の機能について説明します。

内容は次のとおりです。

1.1 サポートされるDB2 LUWデータ型

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

サポートの制限事項

Oracle GoldenGateには、DB2 LUWデータ型のサポートに関する次の制限があります。

  • Oracle GoldenGateは、マルチバイト文字のデータ型と、文字列に保存されているマルチバイトのデータをサポートしています。マルチバイト・データは、同類構成でのみサポートされます。変換、フィルタリング、およびその他の種類の操作は、マルチバイト文字のデータに対してはサポートされていません。

  • BLOB列およびCLOB列の定義にはLOGGED句が含まれている必要があります。

  • GRAPHIC列およびVARGRAPHIC列は、文字セットがUTF16のデータベース内にある必要があります。他の文字セットでは、Oracle GoldenGateが異常終了します。

  • 浮動小数点数の範囲および精度のサポートは、ホスト・マシンによって異なります。通常は有効桁数が16桁の精度ですが、データベースのドキュメントで想定されている近似について確認してください。Oracle GoldenGateでは、サポートされる精度を超える値は丸められるか切り捨てられます。

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

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

  • Oracle GoldenGateでは、4Kより大きいラージ・オブジェクトのフィルタリング、列マッピングまたは操作はサポートされません。4K以下のオブジェクトには、Oracle GoldenGateのすべての機能を使用できます。

  • 同じキャラクタ・セットを使用しているソース・データベースとターゲット・データベース間のXML列のレプリケーションはサポートされています。ソース・データベースとターゲット・データベースのキャラクタ・セットが異なる場合、ターゲット・データベースのキャラクタ・セットで一部の文字が認識されない(または無効な)ことがあるため、XMLレプリケーションがデータベース・エラーで失敗することがあります。

1.2 サポートされないDB2 LUWデータ型

サポートされないDB2 LUWデータ型は次のとおりです。

  • XMLType

  • DECFLOAT

  • ユーザー定義型

  • 負の日付

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

DB2 LUWでサポートされているオブジェクトおよび操作は、次のとおりです。

  • Oracle GoldenGate Extractは、データベースとOracle GoldenGateが異なるバイト順序サーバーで実行されているクロスエンディアン取得をサポートしています。DB2 LUWバージョン10.5以上では、バイト順序は自動的に検出されます。DB2 LUW 10.5データベースのDB2データベース自動検出が不要な場合、TRANLOGOPTIONS MIXEDENDIAN [ON|OFF] パラメータを指定して上書きできます。DB2 LUWバージョン10.1の場合、このパラメータは、クロスエンディアン取得用のExtractパラメータ・ファイルで使用する必要があります。『Oracle GoldenGateリファレンス』TRANLOGOPTIONSに関する項を参照してください。

  • Oracle GoldenGateでは、データベースでサポートされている表ごとの列の最大数およびサイズがサポートされます。

  • DB2 LUWバージョン9.7以上に対するTRUNCATE TABLE

  • DB2 LUW 9.5以上の多次元クラスタリング表(MDC)。

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

  • ROW COMPRESSIONを使用した表。DB2 LUWバージョン10.1以上では、COMPRESS YES STATICおよびCOMPRESS YES ADAPTIVEがサポートされています。

  • 拡張行サイズ機能は、デフォルトで有効になっています。これは、FETCHCOLSを使用した回避策でサポートされます。VARCHARまたはVARGRAPHICデータ型で、データベースの行外に格納されている列値の場合は、Extractパラメータ・ファイルのTABLEパラメータにFETCHCOLSオプションを使用して、これらの列を指定し、これらの拡張行をフェッチする必要があります。このオプションが設定されている場合、列値が行外にあると、Oracle GoldenGateによってこの値がフェッチされます。値が範囲外であり、FETCHCOLSが指定されていない場合は、データ損失の防止のためにExtractが異常終了します。この機能を使用しない場合は、extended_row_sizeパラメータをDISABLEに設定します。

  • DB2 LUW 10.1 FixPack 2以上のテンポラル表がサポートされています。これがReplicatのデフォルトです。

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

    • Oracle GoldenGateのハートビート・パラメータの頻度およびパージ頻度は、秒単位および日単位で使用できます。ただし、DB2 LUWのタスク・スケジューラではスケジュールをcron形式でのみ受け付けるため、Oracle GoldenGateの入力値をcron形式にすると、精度が失われる可能性があります。次に例を示します。

      ADD HEARTBEATTABLE, FREQUENCY 150, PURGE_FREQUENCY 20
      

      この例では、FREQUENCYを150秒に設定します。この値は最も近い分単位の値である2分に変換されるので、ハートビート表は150秒ごとではなく120秒ごとに更新されます。PURGE_FREQUENCYを20に設定すると、履歴表が毎月20日の深夜にパージされます。

    • 次に、ハートビートのスケジュール済タスクの実行に必要なステップを示します。

      1. DB2_ATS_ENABLEレジストリ変数を db2set DB2_ATS_ENABLE=YESに設定します。

      2. SYSTOOLSPACE表領域を作成します(まだ存在しない場合)。

        CREATE TABLESPACE SYSTOOLSPACE IN IBMCATGROUP MANAGED BY AUTOMATIC STORAGE 
        EXTENTSIZE 4 
        
      3. インスタンス所有者にデータベース管理者権限(DBADM)があることを確認します。

        GRANT DBADM ON DATABASE TO instance_owner_name

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

Oracle GoldenGateでサポートされていないDB2 LUWのオブジェクトと操作は次のとおりです。

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

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

  • データリンク

  • DDL (データ定義言語)操作の抽出とレプリケーション

  • 生成された列(GENERATE ALWAYS句)

    注意:

1.5 サポートされるオブジェクト名

オブジェクト名でサポートされる文字のリストについては、『Oracle GoldenGateの管理』サポートされるデータベース・オブジェクト名に関する項を参照してください