Db2 LUW: サポートされているデータ型、オブジェクトおよび操作

この項では、Db2 LUW上のOracle GoldenGateでサポートされているデータ型、オブジェクトおよび操作について説明します。

サポートされているDb2 LUWデータ型

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

サポートの制限事項

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

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

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

  • IBM DB2READLOGインタフェースの制限により、Oracle GoldenGateはDB2データベース・パーティション化機能(DPF)環境のノード間のトランザクションの調整をサポートしていません。DPFでは、データのパーティション化方法によって、トランザクションが複数のノードにまたがる場合があります。

    ただし、そこから取得する必要がある場合は、特定の制限付きで実行できます。Oracle SupportノートDoes Oracle GoldenGate Support DB2 LUW Data Partitioning Feature (DPF)?を参照してください(ドキュメントID 2763006.1)。

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

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

  • 出力証跡の形式が19.1以降の場合、ExtractはTIMESTAMP(0)からTIMESTAMP(12)までのキャプチャと適用をサポートします。それ以外の場合、ExtractはTIMESTAMP(10)からTIMESTAMP(12)までのデータをナノ秒(最大9桁の小数単位の時間)にまで切り捨てして、レポート・ファイルに警告を発行します。

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

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

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

サポートされていないDb2 LUWデータ型

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

  • XMLType (取得)

  • ユーザー定義型

  • 負の日付

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パラメータ・ファイルで使用する必要があります。詳細は、「TRANLOGOPTIONS」を参照してください。

  • Db2 pureScale環境がサポートされています。

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

  • TRUNCATE TABLE

  • マルチディメンション・クラスタリング表(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のFETCHCOLSを使用した回避策でサポートされます。VARCHARまたはVARGRAPHICデータ型で、データベースの行外に格納されている列値の場合は、Extractパラメータ・ファイルのTABLEパラメータでFETCHCOLSオプションを使用してこれらの列を指定し、これらの拡張行をフェッチする必要があります。このオプションが設定されている場合は、列値が行外にあるときに、その値がOracle GoldenGateによってフェッチされます。値が外部にあるときに、FETCHCOLSが指定されていない場合は、データ損失の防止のためにExtractが異常終了します。この機能を使用しない場合は、extended_row_size parameterパラメータをDISABLEに設定します。Db2 LUW 10.5以降では、行外の値がExtractでシームレスにキャプチャされます。該当するデータベース・バージョンから行外の列をキャプチャするために、FETCHCOLSは不要になりました。

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

    • システム期間テンポラル表とアプリケーション期間テンポラル表間のレプリケーションはサポートされていません。

    • 非テンポラル表からテンポラル表へのレプリケーションはサポートされません。

    • INSERTALLRECORDSパラメータを使用したテンポラル表のレプリケーションはサポートされていません。

    • 双方向レプリケーションは、デフォルトのレプリケーションでのみサポートされます。

    • 双方向レプリケーションでのCDRはサポートされていません。

    • アプリケーション期間テンポラル表でのCDRはサポートされています。

  • SEND EXTRACT SHOWTRANS || SKIPTRANS || FORCETRANSコマンドでサポートされるオプションは次のとおりです。

    SHOWTRANSコマンドでサポートされるオプション
    SHOWTRANS [transaction_ID]  [COUNT n] 
    [DURATION duration unit] 
    [TABULAR][FILE file_name] |
    SKIPTRANSおよびFORCETRANSのオプション:
    SKIPTRANS transaction_ID  
    [FORCE] FORCETRANS transaction_ID  [FORCE]
  • 自動ハートビート表のサポートに関する制限事項は次のとおりです。

    • [THREAD n] [DETAIL]はサポートされていません。

    • 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

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

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

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

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

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

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

  • DB2 Data Partitioning Feature (DPF)はサポートされていません。DPFは、パーティション内のすべてのノード間で調整された方法でログ・レコードを読み取る方法を提供しません。したがって、すべてのノードが個別のExtractでレプリケートされている場合でも、すべてのトランザクションのすべてのレコードが正しい時間順序で確実に適用されるようにする方法はありません。これは、データベース内のキャッシュや、基礎となるオペレーティング・システムがパーティション全体にわたるレコード操作の順序に影響を与える可能性のある、キャッシュされているがまだ表示されていないエントリがあるかどうかをExtractが可視化できないなど、多くの要因によって発生する可能性があります。この不確実性のため、パーティションをまたぐトランザクションや主キーの更新を、一貫した方法で確実にレプリケートすることができません。

システム・スキーマ

次のスキーマまたはオブジェクトは、ワイルドカードなしで明示的に指定した場合を除いて、Oracle GoldenGateによる自動レプリケートは実施されません。

  • "SYSIBM"

  • "SYSCAT"

  • "SYSSTAT"

  • "SYSPROC"

  • "SYSFUN"

  • "SYSIBMADMIN"

  • "SYSTOOLS"

  • "SYSPUBLIC"

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

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