この章では、Oracle GoldenGateをサポートするシステム・リソースとデータベース・リソースの要件を示します。
内容は次のとおりです。
次にあげた制限事項に特に記載がないかぎり、キャプチャと配信で次のデータ型がサポートされます。
バイナリ・データ型
(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)
SPARSE
設定を含む列データをレプリケートできます。注意:
Oracle GoldenGateリリース12.3より前のバージョンでは、SPARSE
設定の列データはサポートされていませんでした。このバージョンのOracle GoldenGateリリース12.3以降、FILESTREAM
機能はCDC Extractでサポートされています。この機能は、クラシックExtractですでに使用可能になっています。
制限事項:
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データに対してはサポートされていません。
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は、この識別子を含む操作を間違ったターゲット行に適用する場合があります。
親トピック: SQL Serverのサポート対象の理解
SQL_Variant
データ型はキャプチャではサポートされません。
サポートされないデータ型を含む表が原因で、Extractが異常終了する場合があります。回避策として、これらの表からTRANDATA
を削除し、さらにExtractのTABLE
文から表を削除するか、表に対してExtractのTABLEEXCLUDE
パラメータを使用してください。
親トピック: 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でパーティション表からのキャプチャがサポートされます。
親トピック: SQL Serverのサポート対象の理解
次のオブジェクトと操作はサポートされていません。
ソース・データベースの場合、TRUNCATE
文など、SQL Serverチェンジ・データ・キャプチャまたはトランザクション・レプリケーションでサポートされない操作。SQL Serverチェンジ・データ・キャプチャ(Enterprise Editionの場合)またはトランザクション・レプリケーション(Standard Editionの場合)を有効化することで制限される操作の詳細なリストは、『SQL Server Books Online』を参照してください。
DDL (データ定義言語)操作の抽出またはレプリケーション。DDLの変更による競合を回避するには、次の手順を実行することをお薦めします。
変更対象となる1つ以上の表に対するアプリケーション・データを一時停止または停止します。
CDCキャプチャ・ジョブで残りのトランザクションをすべて処理することを確認します。
DDLの変更を行う前に、Extractですべてのトランザクションを処理することを確認します。イベント・マーカー表が完全な完了の確認に役立つことがあります。
Extractを停止します。
ソースで、ALTER TABLE
(DDL変更)文を実行する必要がある特定の表に対してDELETE TRANDATA
を実行します。
ALTER TABLE
文を実行し、表に対して列を追加または削除します。
ソースで同じ表に対してTRANDATA
を再度有効にします。
TRANDATA
を使用して以前に有効にしたすべての表でTRANDATA
が削除されている場合、データベースのCDCも無効になるので、再起動する前にBEGIN NOW
を使用してExtractを再配置する必要があります。
アプリケーションを再起動します。
ビューからのキャプチャ。基礎となる表を抽出およびレプリケートできます。
TextCopy
ユーティリティ、WRITETEXT
文およびUPDATETEXT
文による操作。これらの機能は、データベースによってログに記録されない操作か、一部のみログに記録される操作を実行するため、Extractプロセスではサポートできません。
パーティションの物理レイアウトが複数あるパーティション表
パーティション切替え。
(クラシックExtract) Oracle GoldenGateでは、サード・パーティ・ベンダーによって提供されるような、非ネイティブSQL Serverトランザクション・ログ・バックアップはサポートされません。ただし、ACTIVESECONDARYTRUNCATIONPOINT
オプションを指定してTRANLOGOPTIONS
パラメータを使用している場合、Extractではトランザクション・ログ・バックアップからの読取りは必要ないため、どのログ・バックアップ・ユーティリティでも使用できます。詳細は、「Oracle GoldenGateのためのデータベースの準備 – クラシック・キャプチャ」を参照してください。
(CDC Extract) SQL Serverのチェンジ・データ・キャプチャの制限により、データベースの照合と異なる列レベルの照合が原因で、文字データの場合にCDC表に誤ったデータが書き込まれる可能性があります。CDC表に書き込まれたこれらのデータは、Extractによってキャプチャされます。ASCII以外のデータを含む列にNVARCHAR
、NCHAR
またはNTEXT
データ型を使用するか、データベースと同じ表列の照合を使用することをお薦めします。詳細は、About Change Data Capture (SQL Server)を参照してください。
(CDC Extract) SQL Serverのチェンジ・データ・キャプチャの制限により、NOOPUPDATES
はSQL Server CDCエージェントによってキャプチャされないため、no-op UPDATE操作のためにExtractがキャプチャするレコードはありません。
親トピック: SQL Serverのサポート対象の理解