1.66 FETCHOPTIONS
適用対象
Extract
説明
FETCHOPTIONS
パラメータでは、Oracle GoldenGateが次の状況でデータをフェッチする方法を制御します。
-
Extractが更新操作を再構築するために十分な情報がトランザクション・レコードに含まれていない
-
TABLE
文のMISSINGCOLS
句の結果として、Oracle GoldenGateが列値をフェッチする必要がある。
FETCHOPTIONS
は表に固有です。1つのFETCHOPTIONS
文は、別のFETCHOPTIONS
文が見つかるまで、後続のすべてのTABLE
文に適用されます。
ほとんどのインストールでは、デフォルトのフェッチ・プロパティで十分に機能します。
デフォルト
紛失した行を無視し、処理を継続する
構文
FETCHOPTIONS [, FETCHPKUPDATECOLS] [, MISSINGCOLS] [, INCONSISTENTROW action] [, MAXFETCHSTATEMENTS number] [, MISSINGROW action] [, NOFETCH] [, SUPPRESSDUPLICATES] [, USEKEY | NOUSEKEY] [, USELATESTVERSION | NOUSELATESTVERSION] [, USESNAPSHOT | NOUSESNAPSHOT] [, USEROWID | NOUSEROWID]
-
FETCHPKUPDATECOLS
-
主キーが更新された場合、使用できないすべての列をフェッチします。このオプションは、デフォルトではオフです。オフにすると、有効化されている他の
FETCHOPTIONS
オプションに従って、列のフェッチが実行されます。オンにすると、主キー列への更新中のみ有効になります。結果は、
TABLE
文で(*)
を使用した場合と同じです。LOB
列はフェッチに含まれます。HANDLECOLLISIONS
を使用する場合に、このパラメータを使用します。Replicatが紛失した更新を検出すると、すべての列は、更新を挿入に変更できるようになります。 -
MISSINGCOLS
-
更新操作および削除操作から欠落している列(LOB列を含む)をフェッチします。このオプションはOracle Databaseにのみ有効です。データをフェッチするための追加の問合せにより、データベースとExtractのパフォーマンスに悪影響を与える可能性があります。特に、大きなLOB値をフェッチして証跡に書き込む必要がある場合は顕著になります。
このパラメータの設定は次のパラメータの設定と同じです。MISSINGCOLS(*) in the TABLE statement NOCOMPRESSDELETES FETCHMISSINGCOLS GETUPDATEBEFORES NOCOMPRESSUPDATES LOGALLSUPCOLS
ただし、FETCHOPTIONS MISSINGCOLS
と設定すると、次のパラメータと競合します。FETCHOPTIONS NOFETCH FETCHOPTIONS FETCHPKUPDATECOLS COMPRESSDELETES COMPRESSUPDATES GETUPDATEBEFORES LOGALLSUPCOLS
-
INCONSISTENTROW
action
行IDによる列データのフェッチは成功したものの、キーが一致しなかったことを示します。行IDが再利用されたか、この操作の後(およびフェッチの前)に主キー更新が行われました。
action
には、次のいずれかを指定できます。 -
MAXFETCHSTATEMENTS
number
-
Extractがソース・データベースから行データをフェッチするために使用可能な、許可される準備済問合せの最大数を制御します。フェッチされたデータは、トランザクション・ログ・レコードから論理SQL文を構築するために使用できる情報が不足しているときに使用されます。問合せは必要に応じて準備およびキャッシュされます。
MAXFETCHSTATEMENTS
で指定した値に到達すると、最も古い問合せが最も新しい問合せに置き換えられます。このパラメータの値は、Extractがフェッチ問合せのみのために保持しているオープンされているカーソル数を制御します。Extractは、ストアド・プロシージャなど他の目的のために追加のカーソルを使用できます。このパラメータは、Oracleデータベースにのみ有効です。デフォルトは100です。データベースが、ここで指定するカーソル数の他に、別のアプリケーションおよびプロセスが使用するカーソルもサポートできることを確認してください。 -
MISSINGROW
action
-
Oracle GoldenGateがフェッチする行を特定できない場合のレスポンスを指定し、行(変更された値)の一部のみでも処理できるようにします。通常、行が特定できない理由は、変更レコードが作成されてからフェッチがトリガーされるまでの間に行が削除されてしまっているか、必要な行イメージが指定されているUNDO保存期間以前のものであったためです。
action
には、次のいずれかを指定できます。 -
NOFETCH
-
Extractによるデータベースからの列のフェッチを防ぎます。このオプションはデフォルトではオフです。Extractはトレイルにレコードを書き込みますが、紛失した列であることを示すトークンを挿入します。
-
SUPPRESSDUPLICATES
-
Oracleに有効です。LOB列での更新時にターゲット表領域が過剰に大きくなるのを回避します。デフォルトでは
SUPPRESSDUPLICATES
はオフに設定されます。たとえば、レプリケーション後に、232MBソース表領域が7.52GBのターゲット表領域になる場合があります。 -
USEKEY | NOUSEKEY
-
フェッチする行を見つけるためにOracle GoldenGateが主キーを使用するかどうかを決定します。
USEKEY
およびUSEROWID
両方を指定する場合、レコードにより高速にアクセスできるROWID
の方が優先されます。デフォルトはUSEROWID
です。 -
USELATESTVERSION | NOUSELATESTVERSION
-
Oracleに有効です。
USESNAPSHOT
とともに使用します。デフォルトのUSELATESTVERSION
では、UNDO表領域からフェッチできない場合に、Extractにソース表からデータをフェッチさせます。NOUSELATESTVERSION
は、スナップショット・フェッチが失敗した場合に、Extractにその状況を無視して処理を継続させます。スナップショット・フェッチが失敗した場合の代替アクションを指定するには、
MISSINGROW
オプションを使用します。 -
USESNAPSHOT | NOUSESNAPSHOT
-
Oracleに有効です。デフォルトの
USESNAPSHOT
では、Extractに、REDOレコードから完全には取得できない特定の操作の再構築に必要なデータの適切なスナップショットを、Oracle Flashbackメカニズムを使用してフェッチさせます。NOUSESNAPSHOT
では、Extractに、フラッシュバック・ログではなくソース表から必要なデータをフェッチさせます。 -
USEROWID | NOUSEROWID
-
Oracleに有効です。フェッチする行を見つけるためにOracle GoldenGateが行IDを使用するかどうかを決定します。
USEKEY
およびUSEROWID
両方を指定する場合、レコードにより高速にアクセスできるROWID
の方が優先されます。デフォルトはUSEROWID
です。
親トピック: Oracle GoldenGateパラメータ