2.10 ADD SCHEMATRANDATA
Oracleに有効です。ADD SCHEMATRANDATA
では、表のスキーマレベルのサプリメンタル・ロギングを有効化します。ADD SCHEMATRANDATA
は、行の識別にOracle GoldenGateが必要とする使用可能なキーのスーパーセットを自動的に記録するために指定したスキーマの、現在および将来のすべての表で機能します。
マルチテナント・データベースのPDB内のスキーマに対してADD SCHEMATRANDATA
を実行するには、PDBにログインしてコマンドを発行する必要があります。
ADD SCHEMATRANDATA
は、統合ExtractおよびクラシックExtractの両方で有効で、次を実行します。
-
CREATE TABLE
で作成された新しい表にOracleサプリメンタル・ロギングを有効化する。 -
列を追加または削除する
ALTER TABLE
の影響を受けた表のサプリメンタル・ロギングを更新する。 -
名前が変更された表のサプリメンタル・ロギングを更新する。
-
一意キーまたは主キーが追加または削除された表のサプリメンタル・ロギングを更新する。
デフォルトで、ADD SCHEMATRANDATA
は、次に示す優先順位で、表のキー列を記録します。
-
主キー
-
主キーがない場合、無効、使用不可または非表示のキーを含む、表のすべての一意キー。ADTメンバー列を含む一意キーも記録されます。仮想列(ファンクションベース索引)の一意キーのみ記録されません。
-
前述のいずれも存在しない場合、表のすべてのスカラー列が記録されます。(システム生成の行OIDは常に記録されます。)
ADD SCHEMATRANDATA
は、統合Replicatを使用するための条件または無条件のロギング要件もサポートします。
次の場合は、ADD SCHEMATRANDATA
を使用します。
-
統合キャプチャ用に構成するExtractグループの一部であるすべての表に対して。
ADD SCHEMATRANDATA
は、すべてのキーを記録することにより、適切なキーが記録されていることを保証します。 -
統合Replicatグループで処理されるすべてのソース表に対して。主キー、一意キーおよび外部キーのロギングを有効にするオプションが提供され、様々な適用サーバーを介して処理されているリレーショナル表間の依存関係の計算をサポートします。
-
DDLレプリケーションがアクティブで、DMLが新しい表を作成するかキー列を変更するDDLと同時である場合。DDLがオブジェクトで発行された直後にDMLをオブジェクトに適用できるシナリオを最適に処理します。
ADD SCHEMATRANDATA
により、各DDL操作で適切なキー値がREDOログにアトミックに記録されるため、Extract処理でのラグに関係なく、ログからキャプチャされる際のDMLのメタデータの継続性が保証されます。
ADD SCHEMATRANDATA
を使用するためのデータベース・レベルのロギング要件
Oracle GoldenGateを使用するときに、ソース・データベースを強制ロギング・モードにし、データベース・レベルで最小サプリメンタル・ロギングを有効にすることを強くお薦めします。これは、連鎖行の情報(存在する場合)を更新操作用のREDOログに追加します。
ADD SCHEMATRANDATA
を使用する場合の追加の考慮事項
-
ADD SCHEMATRANDATA
を使用する前に、DBLOGIN
コマンドを発行します。このコマンドを発行するユーザーは、Oracle Streams管理者権限が付与されている必要があります。SQL> exec dbms_streams_auth.grant_admin_privilege('user')
-
DDLレプリケーションが有効化されていない場合、
ADD TRANDATA
コマンドのかわりにADD SCHEMATRANDATA
を使用できます。ただし、表に主キーがなく、複数の一意キーがある場合、ADD SCHEMATRANDATA
によって、データベースはすべての一意キーを記録することに注意してください。このような場合、ADD SCHEMATRANDATA
によって、データベースはADD TRANDATA
の場合よりも多くのREDOデータを記録します。余分なロギングを回避するには、可能な場合、一意キーのうちの1つを主キーとして指定します。 -
1つの主キーがあるか、1つの一意キーがあるか、キーがない表の場合、
ADD SCHEMATRANDATA
では、ADD TRANDATA
と比較して、追加のロギング・オーバーヘッドはありません。 -
PDB内のスキーマに
SCHEMATRANDATA
を追加する場合、DBLOGIN
内のそのPDBにログインする必要があります。たとえば、PDBがPDB1でスキーマがSCOTTの場合、次のコマンドを使用する必要があります。ADD SCHEMATRANDATA pdb1.scott
-
FILTER
文、およびTABLE
パラメータとMAP
パラメータのKEYCOLS
句に必要な列など、Oracle GoldenGateで使用するために特定の表の追加の非キー列を記録する必要がある場合、これらの列に対してADD TRANDATA
コマンドを発行します。このコマンドには、列の表レベルのサプリメンタル・ロギングを発行するためのCOLS
オプションがあり、ADD SCHEMATRANDATA
とともに使用できます。
Admin Client構文
ADD SCHEMATRANDATA schema
{
[ALLOWNONVALIDATEDKEYS]
[NOSCHEDULINGCOLS | ALLCOLS]}
[NOVALIDATE]
[PREPARECSN {WAIT | LOCK | NOWAIT | NONE}]
GGSCI構文
ADD SCHEMATRANDATA schema {
[ALLOWNONVALIDATEDKEYS]
[NOSCHEDULINGCOLS | ALLCOLS]}
[NOVALIDATE]
[PREPARECSN {WAIT | LOCK | NOWAIT | NONE}]
-
schema
-
キーの追加情報を記録するスキーマ。ワイルドカードは使用しないでください。マルチテナント・コンテナ・データベースの複数のプラガブル・データベースのスキーマに
ADD SCHEMATRANDATA
を発行するには、DBLOGIN
を使用して各プラガブル・データベースに個別にログインしてから、ADD SCHEMATRANDATA
を発行します。ルート・コンテナから、コンテナ接頭辞ADD SCHEMATRANDATA [pdb_name].schema
を使用して、schematrandataを追加できます。 -
ALLOWNONVALIDATEDKEYS
-
このオプションは、Oracle 11.2.0.3または12.1.0.1では無効です。サプリメンタル・ロギングの
NON VALIDATED
およびNOT VALID
主キーが含まれます。これらのキーは、Oracle GoldenGateによって使用される標準キー選択基準より優先されます。GLOBALS
のパラメータALLOWNONVALIDATEDKEYS
が使用されている場合、ADD SCHEMATRANDATA
は、指定されているかどうかにかかわらず、ALLOWNONVALIDATEDKEYS
を使用して実行されます。デフォルトでは、NON VALIDATED
およびNOT VALID
主キーは記録されません。GLOBALS
ALLOWNONVALIDATEDKEYSパラメータを参照してください。 -
NOSCHEDULINGCOLS | ALLCOLS
-
これらのオプションは、Oracleターゲット・データベースのサプリメンタル・ロギングを制御します。これらのオプションは一緒に使用できますが、後者のオプションが使用されます。たとえば、
ADD SCHEMATRANDATA oggadm_ext ALLCOL NOSCHEDULINGCOLS
コマンドでは、NOSCHEDULINGCOLS
オプションが使用されます。-
NOSCHEDULINGCOLS
-
スケジュール列のロギングを無効にします。デフォルトで、
ADD SCHEMATRANDATA
は、主キーの無条件ロギング、指定したスキーマの現在および今後のすべての表の、一意キーおよび外部キーのすべての条件付きサプリメンタル・ロギングを有効にします。無条件ロギングでは、主キーの値を、キーが現在の操作で変更されたかどうかにかかわらず、強制的にログに記録します。条件付きロギングは、外部キーまたは一意キーの列のすべての値を、それらのうちの少なくとも1つが現在の操作で変更された場合に、ログに記録します。統合Replicatの主キー、一意キーおよび外部キーはすべて、依存関係を計算するインバウンド・サーバーから利用できる必要があります。 -
ALLCOLS
-
指定したスキーマの現在および将来のすべての表の、すべてのサポートされるキーおよびキーではない列の無条件サプリメンタル・ロギングを有効にします。このオプションは、依存関係の計算に必要なキーと、フィルタリング、競合の解決またはその他の目的で必要な列のロギングを有効にします。LOB、LONG、ADTなどの列は含まれません。
-
-
NOVALIDATE
-
ADD SCHEMATRANDATA
でサポートされるすべてのデータベースに有効。処理中の表に関する追加情報が
ADD SCHEMATRANDATA
で処理されないようにします。デフォルトでは、このオプションは有効です。追加情報の処理により、コマンドの応答時間が長くなります。このオプションは、その応答時間を短縮するために使用できます。 -
PREPARECSN {WAIT | LOCK | NOWAIT | NONE}
-
DMLとDDLの両方に有効です。Oracleデータ・ポンプのExportダンプ・ファイルにインスタンス化CSNが設定されるよう、ソースの表を自動的に準備します。Replicatは、(インポート時に) Oracle Data Pumpによって設定された表ごとのインスタンス化CSNを使用して、証跡レコードをフィルタ処理で除外します。ターゲット上では、データ・ポンプ・インポートが
DBOPTIONS ENABLE_INSTANTIATION_FILTERING
パラメータを使用して、システム表とビューにインスタンス化SCNを移入し、表レベルのインスタンス化フィルタリングを有効にします。
親トピック: 共通コマンドライン・インタフェースのコマンド