Oracle® Fusion Middleware Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成 12c (12.2.0.1) E70107-04 |
|
![]() 前 |
![]() 次 |
次に、フィルタ条件を作成する場合に注意する必要がある特別なケースを示します。
DDL EXCLUDE ALL
は、トリガーベースのDDLキャプチャを使用している場合に、主としてExtractのために用意されている特別な処理オプションです。DDL EXCLUDE ALL
はDDL操作のレプリケーションをブロックしますが、Oracle GoldenGateが現在のオブジェクト・メタデータを保持できるようにします。Extractがログマイニング・サーバーから直接DDLを受信する場合(トリガーレスDDLキャプチャ・モード)、現在のメタデータは常に保持されます。
Oracle GoldenGate以外の方法を使用してDDLをターゲットに適用し、Oracle GoldenGateによってデータの変更をターゲット・オブジェクトにレプリケートする場合、DDL EXCLUDE ALL
を使用できます。現在のメタデータをオブジェクトの変更としてOracle GoldenGateに提供するため、Oracle GoldenGateプロセスの停止と起動の必要がなくなります。次の特別な条件がDDL EXCLUDE ALL
に適用されます。
DDL EXCLUDE ALL
では、INCLUDE
句を使用する必要がありません。
DDL EXCLUDE ALL
を使用する場合、WILDCARDRESOLVE
パラメータをIMMEDIATE
に設定し、必要に応じてただちにDMLを解決できるようにします。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。
すべてのDDLメタデータおよび操作がレプリケートされないようにするには、DDL
パラメータ全体を省略します。
ユーザーによって生成されたDDL操作によって、暗黙的DDL操作が生成される場合があります。たとえば、次の文では、2つの異なるDDL操作が生成されます。
CREATE TABLE customers (custID number, name varchar2(50), address varchar2(75), address2 varchar2(75), city varchar2(50), state (varchar2(2), zip number, contact varchar2(50), areacode number(3), phone number(7), primary key (custID));
最初の(明示的)DDL操作は、CREATE TABLE
文自体です。
2つ目のDDL操作は、暗黙的なCREATE UNIQUE INDEX
文で、主キーの索引を作成します。この操作は、ユーザー・アプリケーションではなく、データベース・エンジンによって生成されます。
暗黙的DDLのフィルタリングのガイドライン
暗黙的DDLのフィルタ方法は、DDLのフィルタに使用するメカニズムによって異なります。詳細は、「DDLレプリケーションのフィルタリング」を参照してください。
DDL
パラメータを使用してDDL操作をフィルタする場合、ターゲットで明示的DDLによって暗黙的DDLが生成されるため、デフォルトではOracle GoldenGateで暗黙的DDLは除外されます。たとえば、前述の例のCREATE TABLE
文がReplicatによって適用されると、ターゲット・データベースで適切な索引が作成されます。
DDLトリガーを使用してDDL操作をフィルタする場合、次の事項に基づいて、フィルタ・ルールで暗黙的DDLを処理する必要があります。
フィルタ・ルールで明示的DDLを伝播から除外する場合、暗黙的DDLを除外するルールも作成する必要があります。たとえば、次の例のCREATE TABLE
文は除外するが、暗黙的CREATE UNIQUE INDEX
文は除外しない場合、ターゲット・データベースは、存在しない表に索引を作成しようとします。
CREATE TABLE customers (custID number, name varchar2(50), address varchar2(75), address2 varchar2(75), city varchar2(50), state (varchar2(2), zip number, contact varchar2(50), areacode number(3), phone number(7), primary key (custID));
フィルタリング・ルールで明示的DDLの伝播が許可されている場合、暗黙的DDLを除外する必要はありません。Oracle GoldenGateおよびターゲット・データベースによって適切に処理されます。