DDLOPTIONS
適用対象
ExtractおよびReplicat
説明
DDLOPTIONS
パラメータでは、フィルタリングおよび文字列置換以外のDDL処理を構成します。DDLOPTIONS
文は複数使用可能ですが、1つの文のみを使用することをお薦めします。複数のDDLOPTIONS
文を使用する場合は、相互に上書きしないように、それぞれを一意の文にする必要があります。複数のDDLOPTIONS
文は、パラメータ・ファイルに指定された順に実行されます。
デフォルト
引数の説明を参照してください。
構文
DDLOPTIONS
[, DEFAULTUSERPASSWORD password [algorithm [ENCRYPTKEY DEFAULT | ENCRYPTKEY key_name]
[, CAPTUREGLOBALTEMPTABLE ]
[, DEFAULTUSERPASSWORDALIAS alias [DOMAIN domain
] ]
[, GETAPPLOPS | IGNOREAPPLOPS]
[, GETREPLICATES | IGNOREREPLICATES]
[, IGNOREMAPPING]
[, MAPDERIVED | NOMAPDERIVED]
[, MAPSCHEMAS]
[, MAPSESSIONSCHEMA source_schema TARGET target_schema]
[, NOTAG]
[, PASSWORD algorithm ENCRYPTKEY {key_name | DEFAULT}]
[, REMOVECOMMENTS {BEFORE | AFTER}]
[, REPLICATEPASSWORD | NOREPLICATEPASSWORD]
[, REPORT | NOREPORT]
[, UPDATEMETADATA]
[, USEPASSWORDVERIFIERLEVEL {10|11}]
[, _USEOWNERFORSESSION]
-
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は除外されるため、ソース/ターゲットの両方でパスワード検証ファンクションを手動で作成する必要があります。GGSCIの
ENCRYPT PASSWORD
コマンドでパスワードが暗号化されている場合、次のオプションを使用します。-
algorithm
-
ENCRYPT PASSWORD
コマンドでパスワードの暗号化に使用した暗号化アルゴリズムを、AES128
、AES192
、AES256
またはBLOWFISH
の中から指定します。下位互換性のためにBlowfishが必要でないかぎり、AESを使用してください。AESはBlowfishよりもセキュアです。 -
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
を使用することで、GTT DDLを含むようにExtractを設定できます(GTT DDLはDDL文によってフィルタ可能で、渡されるとトレイルに書き込まれます)。GTT DDLは、トレイルに存在する場合はReplicatに含まれ、DDL文によってフィルタされ、渡されると実行されます。トリガーバージョンの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
オプションを使用します。 -
GETAPPLOPS | IGNOREAPPLOPS
-
Extractに有効です。(Oracleのみ)
Replicat以外のビジネス・アプリケーションが生成したDDL操作を、Extractがトレイルまたはファイルに書き込むコンテンツに含めるかどうかを制御します。
GETAPPLOPS
およびIGNOREAPPLOPS
は、GETREPLICATES
およびIGNOREREPLICATES
オプションとともに使用して、双方向またはカスケード構成で伝播するDDLを制御できます。-
双方向構成では、
GETAPPLOPS
とIGNOREREPLICATES
を使用します。UPDATEMETADATA
オプションも使用する必要があります。 -
カスケード構成では、DDL操作をターゲットにカスケードするシステム上で、
IGNOREAPPLOPS
とGETREPLICATES
使用します。
デフォルトは
GETAPPLOPS
です。 -
-
GETREPLICATES | IGNOREREPLICATES
-
Extractに有効です(Oracleのみ)。Replicatが生成したDDL操作をExtractがトレイルまたはファイルに書き込むコンテンツに含めるかどうかを制御します。デフォルトは
IGNOREREPLICATES
です。詳細は、DDLOPTIONS
のGETAPPLOPS | IGNOREAPPLOPS
オプションを参照してください。 -
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 DatabaseのためのOracle GoldenGateの使用』のDDLレプリケーション環境の管理に関する項を参照してください。
-
-
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データベースで発行されるとします。
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
も参照してください。 -
-
NOTAG
-
Replicatに有効
ReplicatがREDOタグ(デフォルト・タグ'00'または
DBOPTIONS
パラメータのSETTAG
オプションによって設定されるタグ)を使用して適用するDDLのタグ付けを禁止します。このオプションは双方向構成で使用します。双方向構成では、GETREPLICATES
が使用され、Replicatが適用したDDLをメタデータのリフレッシュのためExtractがキャプチャする必要があります。 -
PASSWORD
algorithm
ENCRYPTKEY {
key_name
| DEFAULT}
-
Extractに有効です(Oracleのみ)。
DDLをトレイルに書き込む前に、ExtractにソースDDLのすべてのパスワードを暗号化させます。
-
REMOVECOMMENTS {BEFORE | AFTER}
-
(オプション) ExtractおよびReplicatに有効です(Oracleのみ)。DDL操作からコメントを削除するかどうかを制御します。デフォルトでは、
DDLSUBST
パラメータを使用して文字列の置換で使用できるように、コメントは削除されません。詳細は、DDLSUBSTを参照してください。 -
REPLICATEPASSWORD | NOREPLICATEPASSWORD
-
Extractに有効です(Oracleのみ)。
{CREATE | ALTER} USER
user
IDENTIFIED BY
password
コマンドのパスワードに適用します。-
デフォルト(
REPLICATEPASSWORD
)では、Oracle GoldenGateはターゲットのCREATE
またはALTER
文でソース・パスワードを使用します。 -
ソース・パスワードのターゲットへの送信を防ぐには、
NOREPLICATEPASSWORD
を使用します。
NOREPLICATEPASSWORD
を使用する場合は、DDLOPTIONS
文とDEFAULTUSERPASSWORD
またはReplicatパラメータ・ファイルのDEFAULTUSERPASSWORDALIAS
オプションを使用して、ターゲットDDL文用のパスワードを指定します。 -
-
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
に取得されます。Integrated 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 USER
DDL検証文字列からフィルタリングで除外されます。 -
USEPASSWORDVERIFIERLEVEL
を11に設定した場合、S:SHA-1
および弱いベリファイア以外はすべてCREATE USER
DDL検証文字列からフィルタリングで除外されます。
-
例
- 例1
-
次に、
MAPSESSIONSCHEMA
を使用して、ソース・セッション・スキーマをターゲット上の別のスキーマにマッピングする方法を示します。ExtractおよびReplicatで、次のようにDDL取得およびマッピングが構成されているとします。
Extract:
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 SESION 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
親トピック: Oracle GoldenGateパラメータ