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

前
次

15 SQL Serverのサポート対象の理解

この章では、Oracle GoldenGateをサポートするシステム・リソースとデータベース・リソースの要件を示します。

内容は次のとおりです。

15.1 サポートされているSQL Serverデータ型

次にあげた制限事項に特に記載がないかぎり、キャプチャと配信で次のデータ型がサポートされます。

  • バイナリ・データ型

    • (binary、varbinary、varbinary (max))

    • (クラシックExtract — varbinary (max) FILETREAM付きの場合)

  • 文字データ型

    • (char、nchar、nvarchar、nvarchar (max)、varchar、varchar (max))

  • 日付および時間データ型

    • (date、datetime2、datetime、datetimeoffset、smalldatetime、time)

  • 数値データ型

    • (bigint、bit、decimal、float、int、money、numeric、real、smallint、smallmoney、tinyint)

  • LOB

    • (image、ntext、text)

  • その他のデータ型

    • (timestamp、uniqueidentifier、hierarchyid、geography、geometry、sql_variant (配信のみ)、XML)

  • このバージョンのOracle GoldenGateリリース12.3以降、Oracle GoldenGate for SQL Server (CDC Extractのみ)で、SPARSE設定を含む列データをレプリケートできます。

    注意:

    Oracle GoldenGateリリース12.3より前のバージョンでは、SPARSE設定の列データはサポートされていませんでした。
  • このバージョンのOracle GoldenGateリリース12.3以降、FILESTREAM機能はCDC Extractでサポートされています。この機能は、クラシックExtractですでに使用可能になっています。

注意:

SPARSEおよびFILESTREAMのサポートの詳細は、Oracle GoldenGateリリース・ノート新機能 - 2018年3月を参照してください

制限事項:

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

  • XMLが行に格納されない場合にSQL Serverが行う処理と同様に、Oracle GoldenGateは、XMLデータをラージ・オブジェクト(LOB)として処理します。SQL Server拡張XMLの拡張機能(lax検証、DATETIME、union機能など)はサポートされていません。

  • システムによって割り当てられるTIMESTAMP列や、非マテリアライズ計算結果列は、キーの一部にすることはできません。TIMESTAMP列が含まれている表には、キーが必要です。キーには、主キー、一意性制約、あるいはTABLE文またはMAP文のKEYCOLS句で指定された代替キーを使用できます。詳細は、「割当て行識別子」を参照してください。

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

  • TEXT、NTEXT、IMAGE、またはVARCHAR (MAX)、NVARCHAR(MAX)およびVARBINARY (MAX)列のデータ・キャプチャが、max text repl sizeオプションに設定されるSQL Serverのデフォルト・サイズを超える場合は、サイズを拡張します。sp_configureを使用して、max text repl sizeの現在の値を表示し、必要に応じてオプションを調整します。

  • Oracle GoldenGateは、最大サイズが2GBのUDTおよびUDAデータをサポートします。SQL_Variant以外のすべてのUDTがサポートされます。

  • SQL Server組込みCLRデータ型(geometry、geography、hierarchyidなど)を含む共通言語ランタイム(CLR)がサポートされます。CLRデータ型は、同類のSQL Server構成でのみサポートされます。変換、フィルタリング、およびその他の種類の操作は、CLRデータに対してはサポートされていません。

  • このリリースのOracle GoldenGate 12.3以降、FILESTREAM属性付きのVARBINARY (MAX)列は、4GBまでサポートされます。Extractでは、標準のWin32ファイル関数を使用してFILESTREAMファイルを読み取ります。クラシックExtractおよびCDC Extractの両方でサポートされます。

    注意:

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

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

計算結果列に関する制限事項:

  • (クラシックExtract) Oracle GoldenGateでは、非永続化計算結果列を持つ表をサポートしますが、これらの列の変更データを取得しません。データベースが、これらの列の変更データをトランザクション・ログに書き込まないためです。非永続化計算結果列のデータをレプリケートするには、TABLEパラメータのFETCHCOLSまたはFETCHMODCOLSオプションを使用して表から列データをフェッチします。列がデータベースで変更された時刻と処理されるトランザクション・レコードに対するデータをExtractでフェッチする時刻でデータ値が異なることで、不整合が生じることがあることに注意してください。

  • (CDC Extract)計算された列は、永続化または非永続化のいずれかで、Microsoftのチェンジ・データ・キャプチャではサポートされていません。したがって、計算された列を含む列の証跡にデータは書き込まれません。非永続化計算結果列のデータをレプリケートするには、TABLEパラメータのFETCHCOLSまたはFETCHMODCOLSオプションを使用して表から列データをフェッチします。列がデータ・ベースで変更された時刻と処理されるトランザクション・レコードに対するデータをExtractでフェッチする時刻でデータ値が異なることで、不整合が生じることがあることに注意してください。

  • その列のデータが証跡にあった場合でも、ReplicatはDMLを計算結果列に適用しません。データベースがこの種の列のDMLを許可しないためです。ソース永続化計算結果列またはフェッチされた非永続化列のデータは、計算結果列ではないターゲット列に適用できます。

  • 初期ロードでは、データはすべて、トランザクション・ログからではなくソース表から直接選択されます。したがって、初期ロードで、非永続化計算結果列も含め、すべての列のデータ値が証跡に書き込まれるか、またはターゲットに送信されます。どちらになるかは、使用されるメソッドによって決まります。ただし、変更データの適用時に、Replicatは初期ロード・データを計算結果列に適用しません。データベースがこの種の列のDMLを許可しないためです。

  • Oracle GoldenGateは、非永続化計算結果列がTABLE文またはMAP文のKEYCOLS句で使用されることを許可しません。

  • 一意キーに非永続化計算結果列が含まれていて、Oracle GoldenGateがそのキーを使用する必要がある場合は、非永続化計算結果列は無視されます。これによって、残りの列が一意性を強制しない場合には、データ整合性が影響を受けることがあります。

  • 一意索引は、非永続化計算結果列に定義されると、使用されません。

  • 一意キーまたは一意索引に非永続化計算結果列が含まれていて、表の唯一の一意識別子である場合、Oracle GoldenGateは、ターゲット行を見つけるための識別子としてすべての列を使用する必要があります。非永続化計算結果列はこの識別子として使用できないため、Replicatは、この識別子を含む操作を間違ったターゲット行に適用する場合があります。

15.2 サポートされていないSQL Serverのデータ型および機能

  • SQL_Variantデータ型はキャプチャではサポートされません。

  • サポートされないデータ型を含む表が原因で、Extractが異常終了する場合があります。回避策として、これらの表からTRANDATAを削除し、さらにExtractのTABLE文から表を削除するか、表に対してExtractのTABLEEXCLUDEパラメータを使用してください。

15.3 SQL Serverについてサポートされているオブジェクトおよび操作

次のオブジェクトと操作がサポートされています。

  • Oracle GoldenGateでは、ユーザー表からのトランザクションDMLのキャプチャ、ユーザー表および書込み可能ビューへの配信をサポートしています。

  • (クラシックExtract) SQL Server Standard Editionデータベースの表からのキャプチャでは、表に主キーが必要です。 Enterprise Editionデータベースの表には主キーは不要です。

  • Oracle GoldenGateは、最大512の長さの行が含まれている表に対するDML操作のキャプチャおよび配信をサポートします。

  • TEXT、NTEXT、IMAGE、VARBINARY、VARCHAR (MAX)およびNVARCHAR (MAX)列が、フル・サイズでサポートされています。

  • Oracle GoldenGateでは、CDC (Enterprise Editionの場合)およびトランザクション・レプリケーション(Standard Editionの場合)によって追跡される表の最大許容サイズをサポートします。

  • Oracle GoldenGateでは、PAGEおよびROW 圧縮が有効な表からのキャプチャをサポートします。圧縮を使用するパーティション化された表では、すべてのパーティションで圧縮を有効化する必要があります。

  • すべてのパーティションで物理レイアウトが同じ場合、Oracle GoldenGateでパーティション表からのキャプチャがサポートされます。

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

次のオブジェクトと操作はサポートされていません。

  • ソース・データベースの場合、TRUNCATE文など、SQL Serverチェンジ・データ・キャプチャまたはトランザクション・レプリケーションでサポートされない操作。SQL Serverチェンジ・データ・キャプチャ(Enterprise Editionの場合)またはトランザクション・レプリケーション(Standard Editionの場合)を有効化することで制限される操作の詳細なリストは、『SQL Server Books Online』を参照してください。

  • DDL (データ定義言語)操作の抽出またはレプリケーション。DDLの変更による競合を回避するには、次の手順を実行することをお薦めします。

    1. 変更対象となる1つ以上の表に対するアプリケーション・データを一時停止または停止します。

    2. CDCキャプチャ・ジョブで残りのトランザクションをすべて処理することを確認します。

    3. DDLの変更を行う前に、Extractですべてのトランザクションを処理することを確認します。イベント・マーカー表が完全な完了の確認に役立つことがあります。

    4. Extractを停止します。

    5. ソースで、ALTER TABLE (DDL変更)文を実行する必要がある特定の表に対してDELETE TRANDATAを実行します。

    6. ALTER TABLE文を実行し、表に対して列を追加または削除します。

    7. ソースで同じ表に対してTRANDATAを再度有効にします。

    8. TRANDATAを使用して以前に有効にしたすべての表でTRANDATAが削除されている場合、データベースのCDCも無効になるので、再起動する前にBEGIN NOWを使用してExtractを再配置する必要があります。

    9. Extractを起動します。
    10. アプリケーションを再起動します。

  • ビューからのキャプチャ。基礎となる表を抽出およびレプリケートできます。

  • TextCopyユーティリティ、WRITETEXT文およびUPDATETEXT文による操作。これらの機能は、データベースによってログに記録されない操作か、一部のみログに記録される操作を実行するため、Extractプロセスではサポートできません。

  • パーティションの物理レイアウトが複数あるパーティション表

  • パーティション切替え。

  • (クラシックExtract) Oracle GoldenGateでは、サード・パーティ・ベンダーによって提供されるような、非ネイティブSQL Serverトランザクション・ログ・バックアップはサポートされません。ただし、ACTIVESECONDARYTRUNCATIONPOINTオプションを指定してTRANLOGOPTIONSパラメータを使用している場合、Extractではトランザクション・ログ・バックアップからの読取りは必要ないため、どのログ・バックアップ・ユーティリティでも使用できます。詳細は、「Oracle GoldenGateのためのデータベースの準備 – クラシック・キャプチャ」を参照してください。

  • (CDC Extract) SQL Serverのチェンジ・データ・キャプチャの制限により、データベースの照合と異なる列レベルの照合が原因で、文字データの場合にCDC表に誤ったデータが書き込まれる可能性があります。CDC表に書き込まれたこれらのデータは、Extractによってキャプチャされます。ASCII以外のデータを含む列にNVARCHARNCHARまたはNTEXTデータ型を使用するか、データベースと同じ表列の照合を使用することをお薦めします。詳細は、About Change Data Capture (SQL Server)を参照してください。

  • (CDC Extract) SQL Serverのチェンジ・データ・キャプチャの制限により、NOOPUPDATESはSQL Server CDCエージェントによってキャプチャされないため、no-op UPDATE操作のためにExtractがキャプチャするレコードはありません。