ドロップオプション
有効な対象
ExtractおよびReplicat
摘要
DDLOPTIONSパラメータでは、フィルタリングおよび文字列置換以外のDDL処理を構成します。DDLOPTIONS文を複数使用できますが、1つの文を使用することをお薦めします。複数のDDLOPTIONS文を使用する場合は、それぞれを一意の文にし、互いに上書きしないようにします。複数のDDLOPTIONS文は、パラメータ・ファイルに指定された順に実行されます。
デフォルト
引数の説明を参照してください。
構文
DDLOPTIONS
[, DEFAULTUSERPASSWORD <password>] [<algorithm> [ENCRYPTKEY DEFAULT | ENCRYPTKEY] <key_name>]
[, CAPTUREGLOBALTEMPTABLE ]
[, DEFAULTUSERPASSWORDALIAS <alias> [DOMAIN <domain>] ]
[, EXCLUDETAG {<tag> | + | NULL}]
[, IGNOREMAPPING]
[, INCLUDETAG {<tag> | +}][, MAPDERIVED | NOMAPDERIVED]
[, MAPSCHEMAS]
[, MAPSESSIONSCHEMA <source_schema> TARGET <target_schema>]
[, NLSLENGTHSEMANTICS CHAR | BYTE | DEFAULT][, NOAPPLYGLOBALTEMPTABLE]
[, NOTAG]
[, PASSWORD <algorithm> ENCRYPTKEY {<key_name> | DEFAULT}]
[, REMOVECOMMENTS {BEFORE | AFTER}]
[, REPLICATEPASSWORD | NOREPLICATEPASSWORD]
[, REPORT | NOREPORT]
[, UPDATEMETADATA]
[, USEPASSWORDVERIFIERLEVEL {10|11}]
[, _USEOWNERFORSESSION]
[, WARNONLARGEDDL]
DEFAULTUSERPASSWORD *password* [*algorithm* ENCRYPTKEY {*key_name* | DEFAULT}]
Replicatに有効です。(Oracleのみ)
Oracle GoldenGate資格証明ストアが使用されていない場合に、DEFAULTUSERPASSWORDALIASオプションのかわりに使用できます。レプリケートされる{CREATE | ALTER} USER <name> IDENTIFIED BY <password>文に、ソース文で使用されているパスワードとは異なるパスワードを指定します。Replicatは、Extractがトレイルに書き込むプレースホルダを、指定されたパスワードに置き換えます。DEFAULTUSERPASSWORDを使用する場合、ExtractにはDDLOPTIONSのNOREPLICATEPASSWORDオプションを使用してください。
オプションなし の DEFAULTUSERPASSWORD <password>では、クリアテキストのパスワードを指定します。パスワードで大/小文字が区別される場合、それに従って入力してください。
ノート: プロファイル/パスワードの検証ファンクションはSYSスキーマに存在する必要があるため、CREATE | ALTER PROFILEのレプリケーションに失敗します。このようなDDLを正常にレプリケートするには、SYSスキーマに対するDDLが除外されるため、ソース/ターゲットの両方でパスワード検証ファンクションを手動で作成する必要があります。
ENCRYPT PASSWORDコマンドでパスワードが暗号化されている場合、次のオプションを使用します:
algorithm
ENCRYPT PASSWORDコマンドでパスワードの暗号化に使用した暗号化アルゴリズムを、AES128またはAES192、AES256の中から指定します。
ENCRYPTKEY key_name
ENCKEYS参照ファイル内のユーザー作成の暗号化キーの論理名を指定します。ENCRYPT PASSWORDがKEYNAME <key_name>オプションとともに使用された場合するために使用し、同じキー名を指定します。
ENCRYPTKEY DEFAULT
指定すると、Oracle GoldenGateでランダムなキーが使用されます。ENCRYPT PASSWORDがKEYNAME DEFAULTオプションとともに使用された場合に使用します。
CAPTUREGLOBALTEMPTABLE
Oracleで有効です
グローバル一時表(GTT) DDLをExtractに表示できるようになり、レプリケートできます。デフォルトでは、GTT DDLはExtractに表示できないため、CAPTUREGLOBALTEMPTABLEを使用することで、GTTDDLを含むようにExtractを設定します(GTT DDLはDDL文によってフィルタ可能で、渡されるとトレイルに書き込まれます)。
トレイルに存在するGTT DDLは、フィルタリング基準に合格すると、Replicatによってフィルタおよび実行されます。
トリガー・バージョンのExtractの場合、表がGTTかどうかに関係なく、このオプションはfalseに設定されます。
DEFAULTUSERPASSWORDALIAS *alias* [DOMAIN *domain*]
Replicatに有効です。(Oracleのみ)
Oracle GoldenGate資格証明ストアが使用されていない場合に、DEFAULTUSERPASSWORDオプションのかわりに使用できます。レプリケートされたCREATE USERまたはALTER USER文のIDENTIFIED BY句のパスワードを置き換える、資格証明の別名を指定します。別名は、Oracle GoldenGate資格証明ストアの暗号化パスワードに解決されます。Replicatは、Extractがトレイルに書き込むプレースホルダを、解決されたパスワードに置き換えてからDDLをターゲットに適用します。
DEFAULTUSERPASSWORDALIASを使用する場合、ExtractにはDDLOPTIONSのNOREPLICATEPASSWORDオプションを使用します。
alias
置換パスワードとして使用されるパスワードの資格証明の別名を指定します。この資格証明が、Oracle GoldenGate資格証明ストアに存在している必要があります。使用する別名が不明な場合は、INFO CREDENTIALSTOREコマンドを発行して資格証明ストアの内容を調べることができます。
DOMAIN ドメイン
資格証明ストアの指定されたユーザーに割り当てられるドメインを指定します。
EXCLUDETAG {*tag* | + | NULL}]
Extractで有効です。(Oracleのみ)
ノート: Oracle GoldenGate 26ai以降では、EXCLUDETAGおよびINCLUDETAGオプションを使用するための構文が拡張され、削除されたGETREPLICATES、IGNOREREPLICATES、GETAPPLOPSおよびIGNOREAPPLOPSオプションのかわりに使用する必要があります。
EXCLUDETAGは、DBOPTIONS SET TAGオプションを使用して、またはdbms_xstream.set_tagプロシージャを使用してOracle AI Databaseセッション内で、事前にReplicatによってタグ付けされた変更を除外するために使用されます。
EXCLUDETAG <tag>では、指定したREDOタグでタグ付けされた個々のレコードを無視するようにExtractプロセスに対して指示します。
EXCLUDETAG NULLを使用して、タグ付けされていないすべてのDDL操作を除外します。実行内容は、EXCLUDETAG +の反対です
EXCLUDETAG +では、REDOタグでタグ付けされた個々のレコードを無視するようにExtractプロセスに指示します。
ノート: DDLOPTIONSコマンドにEXCLUDETAGパラメータとINCLUDETAGパラメータの両方を指定する場合は、最初にEXCLUDETAGを指定します。
デフォルトでは、DDLOPTIONS EXCLUDETAG +オプションは、タグ付きDDL操作をフィルタするようにExtractに指示します。これにより、00でタグ付けされたOracle Data Pump DDLが取得から除外されます。これらのDDLを取得するには、DDLOPTIONS INCLUDETAG 00を構成します。
ノート: 双方向構成では、タグ・インクルードを有効にすると、他のタグ付きDDLが取得され、レプリケーション・ループまたは重複するDDLの実行が発生する可能性があります。
例
次の例は、EXCLUDETAGを使用してタグ指定子を使用する方法です。
すべてのタグ付き変更を除外するには:
DDLOPTIONS EXCLUDETAG +
特定のタグ付き変更を除外するには:
DDLOPTIONS EXCLUDETAG 00
DDLOPTIONS EXCLUDETAG 0952
単一のDDLOPTIONS文に複数のexcludeタグを含めるには:
DDLOPTIONS EXCLUDETAG 00 EXCLUDETAG 97ab
INCLUDETAG {tag | +}
Extractで有効です。(Oracleのみ)
INCLUDETAG <tag>を使用して、特定のタグ付きDDL操作を証跡ファイルに含めます。タグ値は、16進数の桁で2000 (0-9 A-F)まで指定できます。
ノート: DDLOPTIONSコマンドにEXCLUDETAGパラメータとINCLUDETAGパラメータの両方を指定する場合は、最初にEXCLUDETAGを指定します。
例:
すべてのタグ付き変更を含めるには:
DDLOPTIONS INCLUDETAG +
特定のタグ付き変更を含めるには:
DDLOPTIONS INCLUDETAG 00
EXCLUDETAGおよびINCLUDETAGパラメータの使用時のガイドライン
TRANLOGOPTIONSおよびDDLOPTIONSコマンドでEXCLUDETAGおよびINCLUDETAGパラメータを使用する場合は、次の点を考慮してください:
-
TRANLOGOPTIONS EXCLUDETAG/INCLUDETAGが指定されていて、DDLOPTIONS EXCLUDETAG/INCLUDETAGが指定されていない場合、TRANLOGOPIIONS EXCLUDETAG/INCLUDETAGパラメータはDML操作とDDL操作の両方に適用されます。 -
TRANLOGOPTIONS EXCLUDETAG/INCLUDETAGオプションが指定され、DDLOPTIONS EXCLUDETAG/INCLUDETAGも指定されている場合、TRANLOGOPIIONS EXCLUDETAG/INCLUDETAGはDML操作に適用され、DDLOPTIONS EXCLUDETAG/INCLUDETAGはDDL操作に適用されます。 -
TRANLOGOPTIONS EXCLUDETAG/INCLUDETAGを指定せず、DDLOPTIONS EXCLUDETAG/INCLUDETAGを指定した場合、DDLOPTIONS EXCLUDETAG/INCLUDETAGはDDL操作に対して適用され、DML操作に対してタグ・フィルタリングは行われません。 -
TRANLOGOPTIONS EXCLUDETAG/INCLUDETAGが指定されておらず、DDLOPTIONS EXCLUDETAG/INCLUDETAGも指定されていない場合、デフォルトのオプションDDLOPTIONS EXCLUDETAG +が適用可能であり、すべてのタグ付きDDL操作は除外される。 -
DDLOPTIONSにEXCLUDETAGとINCLUDETAGの両方を指定する場合は、EXCLUDETAGを最初に指定する必要があります。
IGNOREMAPPING
Replicatに有効です。DDLがMAPPED範囲かUNMAPPED範囲かを決定する名前マッピングの評価を無効にする。このオプションにより、ソースとターゲットのスキーマ名およびオブジェクト名が一致するためマッピング機能が不要な場合に、like-to-like DDLレプリケーション構成のパフォーマンスが向上します。IGNOREMAPPINGを有効にすると、MAPPEDまたはUNMAPPED範囲を決定できず、すべてのDDL文はOTHER範囲として処理されます。ソースのスキーマおよびオブジェクト名がターゲット上で異なるスキーマおよびオブジェクト名にマッピングされている場合、このパラメータを使用しないでください。
MAPDERIVED | NOMAPDERIVED
Replicatに有効です(Oracle)。導出オブジェクト名のマップ方法を制御します
MAPDERIVED
導出オブジェクトのMAP文が存在する場合、名前はその文のTARGET句に指定されている名前にマッピングされます。それ以外の場合、名前はベース・オブジェクトを含むMAP文のTARGET句に指定されている名前にマッピングされます。MAPDERIVEDはデフォルトです。
NOMAPDERIVED
名前のマッピングを行わないようにします。NOMAPDERIVEDは、導出オブジェクトの名前を含むすべての明示的なMAP文より優先されます。
導出されたオブジェクトのDDLレプリケーションの処理方法の詳細は、Oracle GoldenGateによる導出されたオブジェクト名の処理方法に関する項を参照してください。
MAPSCHEMAS
Replicat(OracleおよびTeradata)に有効です。MAPSESSIONSCHEMAを使用している場合のみ使用します。
-
MAPSESSIONSCHEMAは、セッション・スキーマのソース・ターゲット間マッピングを確立し、スキーマがDDLで修飾されていないオブジェクトに使用されます。 -
MAPSCHEMASは、修飾されたスキーマがソースDDLに存在するが、MAPを使用したマッピングは修飾しないオブジェクトを、MAPSESSIONSCHEMAと同じセッション・スキーマ間マッピングにマップしますそのようなオブジェクトの例には、AS SELECT句内の導出オブジェクトが含まれているOracleのCREATE TABLE AS SELECT文や、TeradataのCREATE REPLICATION RULESET文などがあります。
このマッピングは、MAP文で指定されたマッピング後に行われます。
例として、次のDDL文がソースOracle AI Databaseで発行されるとします:
create table a.t as select from b.t;
ターゲット上でのMAP文は次のようになるとします。
MAP a.*, TARGET c.*;
DDLOPTIONS MAPSESSIONSCHEMA b, TARGET b1, MAPSCHEMAS
このマッピングの結果、Replicatはターゲット上に次のDDL文を発行します。
create table c.t as select from b1.t;
-
ベース表は、
TARGET句(スキーマc)に従ってマップされます。 -
修飾された導出オブジェクト(
SELECT FROM内の表t)は、MAPSCHEMASが存在するため、MAPSESSIONSCHEMA(スキーマb1)に従ってマップされます。
MAPSCHEMASを使用しない場合、MAPSESSIONSCHEMAのみが未修飾オブジェクトのみをマップするため、導出オブジェクトが(TARGET句で指定した)スキーマcにマップされる。
MAPSESSIONSCHEMA *source_schema* TARGET *target_schema*
Replicatに有効です(Oracleのみ)。ソースのセッション・スキーマを、ターゲット上の異なるセッション・スキーマにマッピング(変換)します。
-
<source_schema>は、ソース上でALTER SESSION set CURRENT_SCHEMAで設定されているセッション・スキーマです。 -
<target_schema>は、ターゲット上でALTER SESSION set CURRENT_SCHEMAで設定されているセッション・スキーマです。
ワイルドカードはサポートされていません複数のMAPSESSIONSCHEMAパラメータを使用して、異なるスキーマをマップできます。
MAPSESSIONSCHEMAは、マスターまたは導出オブジェクト名に基づくすべてのスキーマ名マッピングより優先されます。
このセクション最後の使用例を参照してください。
MAPSCHEMASも参照してください。
NLSLENGTHSEMANTICS CHAR | BYTE | DEFAULT]
Replicatに有効です(Oracleのみ)。
Replicatに、DDLレプリケーション・トレイル・ファイル・レコードの一部であるNLS_LENGTH_SEMANTICS Oracle AI Databaseセッション・パラメータ設定のオーバーライドを許可します。たとえば、DDLがNLS_LENGTH_SEMANTICSパラメータ値がBYTEのデータベース・セッションで実行される場合、ReplicatがDDLを適用する前に、デフォルトでデータベース・セッション・パラメータNLS_LENGTH_SEMANTICSがBYTEに設定されます。これをオーバーライドするには、NLSLENGTHSEMANTICSパラメータをCHARに設定し、DDLが適用される前にNLS_LENGTH_SEMANTICSセッション・パラメータをCHARに設定します。
NOAPPLYGLOBALTEMPTABLE
Replicatがグローバル一時表(GTT)を適用しないようにします。このオプションを指定しない場合、Replicatは常にトレイルからグローバル一時表(GTT)にDDLを適用します。
NOTAG
Replicatに有効
Prevents the tagging of DDL that is applied by Replicat with a redo tag (either the default tag ‘00’ or one set with the DBOPTIONS parameter with the SETTAG option).
Replicatで使用されるデフォルトのタグ値は00で、DBOPTIONS SETTAGパラメータを使用して手動で変更できます。DBOPTIONSを参照してください。
PASSWORD *algorithm* ENCRYPTKEY {*key_name* | DEFAULT}
Extractに有効です(Oracleのみ)。
DDLを証跡に書き込む前に、ソースDDL内のすべてのパスワードを暗号化するようにExtractに指示します。
<algorithm>
パスワードの暗号化に使用する暗号アルゴリズムを指定します。有効な値は、AES128、AES192またはAES256です。
ENCRYPTKEY *key_name*
ENCKEYS参照ファイル内のユーザー作成の暗号化キーの論理名を指定します。
ENCRYPTKEY DEFAULT
指定すると、Oracle GoldenGateでランダムなキーが使用されます。
REMOVECOMMENTS {BEFORE | AFTER}
(オプション) ExtractおよびReplicatに有効です(Oracleのみ)。DDL操作からコメントを削除するかどうかを制御します。デフォルトでは、DDLSUBSTパラメータで文字列の置換に使用できるように、コメントが削除されません。詳細は、DDLSUBSTを参照してください。
REMOVECOMMENTS BEFORE
ExtractまたはReplicatによってDDL操作が処理される前にコメントを削除します。コメントは、文字列置換で使用できません。
REMOVECOMMENTS AFTER
文字列置換で使用された後にコメントを削除します。これは、REMOVECOMMENTSが指定されていない場合のデフォルト動作です。
REPLICATEPASSWORD | NOREPLICATEPASSWORD
Extractに有効です(Oracleのみ)。{CREATE | ALTER} USER <user> IDENTIFIED BY <password>コマンドのパスワードに適用します。
-
デフォルト(
REPLICATEPASSWORD)では、Oracle GoldenGateはターゲットのCREATEまたはALTER文でソース・パスワードを使用します。 -
ソース・パスワードのターゲットへの送信を防ぐには、
NOREPLICATEPASSWORDを使用します。
When using NOREPLICATEPASSWORD, specify a password for the target DDL statement by using a DDLOPTIONS statement with the DEFAULTUSERPASSWORD or DEFAULTUSERPASSWORDALIAS option in the Replicat parameter file.
REPORT | NOREPORT
ExtractおよびReplicat(OracleおよびTeradata)に有効です。拡張DDL処理情報をレポート・ファイルに書き込むかどうかを制御します。デフォルトのNOREPORTでは、基本的なDDL統計をレポートします。REPORTでは、使用しているパラメータ、および処理された操作のステップバイステップの履歴を追加します。
UPDATEMETADATA
Replicatに有効です(Oracleのみ)。アクティブ/アクティブ双方向構成で使用します。このパラメータは、DDLが開始されたシステム上のReplicatに、このDDLがもう一方のシステムに伝播されたため、新しいメタデータを照合してすぐにオブジェクト・メタデータ・キャッシュを更新するように通知します。これによって、Replicatのメタデータ・キャッシュと、ローカル・データベースの現在のメタデータの同期が維持されます。
USEPASSWORDVERIFIERLEVEL {10|11}
OracleからOracleの構成でのみ有効です。DDL CREATE USER文で送信されるパスワード・ベリファイアに変更が必要かどうかを確認します。この確認を行う理由は、Oracleにはデータベース・バージョンに応じて異なるパスワード・ベリファイアがあるためです。
-
10g:
user$.passwordに保持されている弱いベリファイア。 -
11g: SHA-1ベリファイア。
-
12c: SHA-2およびHTTPダイジェスト・ベリファイア。
SHA-1、SHA-2およびHTTPベリファイアは、'S:<SHA-1-verifier>;H:<http-verifier>;T:<SHA-2-verifier>'という形式でuser$.spare4に取得されます。統合Extractは、12cでcreate user DDL文に対して次のDDLを返します。
-
12.0.1.0では、
CREATE USER <username>IDENTIFIED BY VALUES'S:SHA-1;H:http;weak'が返されます。 -
12.0.2.0以降では、
CREATE USER <username>IDENTIFIED BY VALUES'S:SHA-1;H:http;T:SHA-2;weak'が返されます。
ReplicatがOracle 12cに対して実行する場合は、これらのCREATE USERフォームがRDBMSレベルで処理されますが、ReplicatをOracle 10gまたは11に対して実行する場合は、これらのフォームがRDBMSによって処理されません。Oracle 10gは弱いベリファイアのみを受け入れ、Oracle 11gはS:SHA-1および弱いベリファイアのみを受け入れます。
Oracle 12cに接続されているExtractに対して生成されたCREATE USER DDLを、Oracle 10gまたは11gに接続されているReplicatで使用できるようにするには、次のように、このパラメータを使用して不要なベリファイアをフィルタリングで除外できます。
-
USEPASSWORDVERIFIERLEVELを10に設定した場合、弱いベリファイア以外のすべてのものはCREATE USERDDL検証文字列からフィルタリングで除外されます。 -
USEPASSWORDVERIFIERLEVELを11に設定した場合、S:SHA-1および弱いベリファイア以外はすべてCREATE USERDDL検証文字列からフィルタリングで除外されます。
WARNONLARGEDDL
このオプションはExtractに有効です。
これにより、DDLがBUFFERサイズを超えた場合に、異常終了せずにExtractの警告メッセージを生成できます。
例
例1
次に、MAPSESSIONSCHEMAを使用して、ソース・セッション・スキーマをターゲット上の別のスキーマにマッピングする方法を示します。
ExtractとReplicatで、次のDDL取得およびマッピング構成が構成されているとします。
抽出:
DDL INCLUDE OBJNAME SRC.* INCLUDE OBJNAME SRC1.*
TABLE SRC.*;
TABLE SRC1.*;
DDL INCLUDE OBJNAME SRC.* INCLUDE OBJNAME SRC1.*
TABLE SRC.*;
TABLE SRC1.*;
Replicat:
DDLOPTIONS MAPSESSIONSCHEMA SRC TARGET DST
DDLOPTIONS MAPSESSIONSCHEMA SRC1 TARGET DST1
MAP SRC.*, TARGET DST.*;
MAP SRC1.*, TARGET DST1.*;
DDL INCLUDE OBJNAME DST.* INCLUDE OBJNAME DST1.*
ソースのログイン・ユーザーによって、次のDDL文が発行されるとします。
ALTER SESSION SET CURRENT_SCHEMA=SRC;
CREATE TABLE tab (X NUMBER);
CREATE TABLE SRC1.tab (X NUMBER) AS SELECT * FROM tab;
Replicatは、次のようなDDLを実行します(各コード・セグメントの前に説明を記載します)。
-- Set session to DST, because SRC.* is mapped to DST.* in MAP statement.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the first TAB table in the DST schema, using the DST session schema.
CREATE TABLE DST.tab (X NUMBER);
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER
-- Set session schema to DST, per MAPSESSIONSCHEMA, so that AS SELECT succeeds.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the DST1.TAB table AS SELECT * FROM the first table (DST.TAB).
CREATE TABLE DST1.tab (X NUMBER) AS SELECT * FROM tab;
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER
MAPSESSIONSCHEMAを指定しない場合、SELECT * FROM TABは存在しないSRC.TAB表からの選択を試み、失敗します。デフォルトでは、ソース・スキーマを、ターゲットDDL文の未修飾のオブジェクトに適用します。その場合、DDL文は次のようになり、失敗します。
-- Set session to DST, because SRC.* is mapped to DST.* in MAP statement.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the first TAB table in the DST schema, using the DST session schema.
CREATE TABLE DST.tab (X NUMBER);
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER
-- Set session schema to SRC, because TAB in the AS SELECT is unqualified-- and SRC is the source session schema.
ALTER SESION SET CURRENT_SCHEMA=SRC;
-- Create DST1.TAB AS SELECT * from SRC.TAB (SRC=current session schema).
CREATE TABLE DST1.tab (X NUMBER) AS SELECT * FROM tab;
-- SRC.TAB does not exist.
-- Abend with an error unless the error is handled by a DDLERROR statement.
例2
次に、DEFAULTUSERPASSWORDALIASを使用して、レプリケートされる{CREATE | ALTER} USER <name> IDENTIFIED BY <password>文をソース文で使用されたものとは異なるパスワードを指定する方法を示します。この例では、別名ddlaliasが資格証明ストアのtargetドメインにあります。
DDLOPTIONS DEFAULTUSERPASSWORDALIAS ddlalias DOMAIN target