Oracle® Fusion Middleware Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成 12c (12.2.0.1) E70107-04 |
|
前 |
次 |
データベース・オブジェクトは、スコープで分類されます。スコープは、オブジェクトに対するDDL操作がOracle GoldenGateでどのように処理されるかを定義するカテゴリです。スコープは次のとおりです。
MAPPED
UNMAPPED
OTHER
スコープを使用すると、DDL操作、文字列の置換およびエラー処理のフィルタリングをより詳細に制御できます。
TABLE
およびMAP
文に指定されるオブジェクトは、MAPPED
スコープです。それらの文での抽出とレプリケーションの指示は、オーバーライド・ルールが適用されていないかぎり、指定されたオブジェクトに対するデータ(DML)とDDLの両方に適用されます。
TABLE
文とMAP
文内のオブジェクトでは、次の表にリストされたDDL操作がサポートされます。
表13-1 MAP文とTABLE文でマップできるオブジェクト
操作 | 対象のオブジェクト(1) |
---|---|
|
|
|
|
|
|
脚注 1 TABLEおよびMAPでは、これらの操作の対象のオブジェクト名に使用される可能性のある一部の特殊文字がサポートされません。サポートされていない特殊文字が使用されたオブジェクトは、UNMAPPEDおよびOTHERのスコープでサポートされます。
脚注2
COMMENT ON TABLE
、COMMENT ON COLUMN
に適用されます。
脚注3
AS SELECT
が含まれます。
脚注4
表名は、スキーマ名で修飾する必要があります。
Extractの場合、MAPPED
スコープでTABLE
文の指示に従ってDDLキャプチャ用にオブジェクトがマークされます。Replicatの場合、MAPPED
スコープでレプリケーション用にDDLがマークされ、MAP
文のTARGET
句のスキーマと名前によって指定されたオブジェクトにマップされます。このマッピングを実行するために、ReplicatによってALTER SESSION
が発行され、ReplicatセッションのスキーマがTARGET
句で指定されたスキーマに設定されます。修飾されていないオブジェクトがDDLに含まれている場合、ターゲットで割り当てられるスキーマは、「DDL内の修飾されていないオブジェクト名の正しい識別」に説明されている状況に応じて異なります。
TABLE
文とMAP
文が次のとおりであるとします。
Extract (ソース)
TABLE fin.expen; TABLE hr.tab*;
Replicat (ターゲット)
MAP fin.expen, TARGET fin2.expen2; MAP hr.tab*, TARGET hrBackup.bak_*;
次のソースDDL文もあるとします。
ALTER TABLE fin.expen ADD notes varchar2(100);
この例では、ソース表fin.expen
が、別のスキーマと表名にマップするTARGET
句が指定されたMAP
文にあるため、ターゲットのDDL文は次のようになります。
ALTER TABLE fin2.expen2 ADD notes varchar2(100);
同様に、次のソースおよびターゲットDDL文は、例のTABLE
文およびMAP
文の2つ目のセットに使用できます。
ソース:
CREATE TABLE hr.tabPayables ... ;
ターゲット:
CREATE TABLE hrBackup.bak_tabPayables ...;
オブジェクトがMAPPED
スコープの場合は、DDLサポートをさらに絞り込む場合を除き、DDL構成パラメータでそのオブジェクト名を省略できます。TABLE
文およびMAP
文でオブジェクト名を変更する必要がある場合、変更内容はそれらのオブジェクトのDDLに自動的に適用されます。
TABLE
文にはオブジェクトを指定し、MAP
文には指定しない場合、そのオブジェクトのDDLは、ソースではスコープがMAPPED
になり、ターゲットではUNMAPPED
になります。
Oracleクラスタ表またはOracleユーザー定義型(UDT)は、別のターゲット名にはマップできませんが、別のターゲット・スキーマにはマップできます。これらの特別なオブジェクトは、それ自体がMAPPED
とUNMAPPED
の混在の可能性のある、基になる表で構成されるため、名前のマッピングは使用できません。
ALTER INDEX...RENAME
コマンドは、別のターゲット索引名にはマップできませんが、別のターゲット・スキーマにはマップできます。
有効な例:
ALTER INDEX src.ind RENAME TO indnew;
このDDLは、ワイルドカードを使用して、次のようにマップできます。
MAP src.* TARGET tgt.*;
または次のように、ソースとターゲットの指定で元の索引名を使用することを確認し、明示的にマップすることも可能です。
MAP src.ind TARGET tgt.ind;
前述のケースのいずれの場合も、ターゲットDDLは次のようになります。
ALTER INDEX tgt.ind RENAME TO indnew;
無効な例:
次のようなMAP
文は無効です。
MAP src.ind TARGET tgt.indnew;
その文で古い名前が新しい名前にマップされ、ターゲットDDLは次のようになります。
ALTER INDEX tgt.indnew RENAME TO indnew;
TABLE
文またはMAP
文でDDL操作の使用がサポートされているが、ベース・オブジェクト名がそれらのパラメータに含まれていない場合は、UNMAPPED
スコープになります。
オブジェクト名のスコープが、ソースではUNMAPPED
(ExtractのTABLE
文にない)で、ターゲットではMAPPED
(ReplicatのMAP
文にある)であることも、その逆もあります。Oracle DDLのスコープがReplicat構成でUNMAPPED
の場合、Replicatはデフォルトでは次のようにします。
「DDL内の修飾されていないオブジェクト名の正しい識別」を参照してください。
マップできないDDL操作は、OTHER
スコープになります。DDLがReplicat構成でOTHER
スコープの場合、ソースDDLと同じスキーマ名とオブジェクト名でターゲットに適用されます。
OTHER
スコープの例は、データ・ファイル名に対して操作を実行するDDLなど、システム固有の参照を行うDDL操作です。
OTHER
スコープのその他の例は、次のとおりです。
CREATE USER joe IDENTIFIED by joe; CREATE ROLE ggs_gguser_role IDENTIFIED GLOBALLY; ALTER TABLESPACE gg_user TABLESPACE GROUP gg_grp_user;
「DDL内の修飾されていないオブジェクト名の正しい識別」を参照してください。