Oracle® Fusion Middleware Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成 12c (12.2.0.1) E70107-04 |
|
![]() 前 |
![]() 次 |
次に、Oracle GoldenGateプロセスがDDLレプリケーションをサポートするよう構成する際に考慮するガイドラインを示します。
Oracle GoldenGateでDDLのキャプチャとレプリケーションをサポートするために必要なデータベース権限については、「Oracle GoldenGate資格証明の確立」を参照してください。
Extract/Replicatの並列処理を使用している場合は、関連するDDLとDMLを同じプロセス・ストリームに保持し、データの整合性を確保します。プロセスを次のように構成します。
あるオブジェクトに対するすべてのDDLおよびDMLが、同じExtractグループおよび同じReplicatグループで処理されるようにします。
相互に関連するすべてのオブジェクトが、同じプロセス・グループで処理されるようにします。
たとえば、ReplicatA
がTable1
のDMLを処理する場合は、Table1
のDDLも処理する必要があります。Table2
にTable1
に対する外部キーがある場合は、そのDMLとDDLの操作もReplicatA
によって処理される必要があります。
Extractグループが、異なるReplicatグループによって読み取られる複数の証跡に書き込む場合、ExtractはすべてのDDLをすべての証跡に送信します。Replicatパラメータ・ファイルにあるDDL
パラメータのフィルタ・オプションを使用してDDLをフィルタするには、各Replicatグループを使用します。
Oracle GoldenGateでは、データベース定義のオブジェクト名、ケースおよびキャラクタ・セットが保持されます。このサポートにより、データベース階層のすべてのレベルにおいて、シングルバイト名とマルチバイト名、記号およびアクセント文字が保持されます。オブジェクト名のサポートの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
DDL同期をサポートするパラメータの入力として指定する場合、オブジェクト名は2つの部分または3つの部分からなる名前として完全修飾されている必要があります。DDL同期をサポートする構成パラメータで、疑問符(?)およびアスタリスク(*)のワイルドカードを使用してオブジェクト名を指定できます。ただし、ワイルドカード指定も、2つの部分または3つの部分からなる名前として完全修飾されている必要があります。ワイルドカードのサポートの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。ワイルドカードを正しく処理するため、WILDCARDRESOLVE
パラメータはデフォルトでDYNAMIC
に設定されています。WILDCARDRESOLVE
がそれ以外に設定されている場合、DDL操作を処理しているOracle GoldenGateプロセスが異常終了し、プロセス・レポートにエラーが書き込まれます。
DDLサポートには同一の構成が必要であるため、Replicatパラメータ・ファイルにASSUMETARGETDEFS
パラメータを使用する必要があります。オブジェクトがDDLサポート向けに構成されている場合に、SOURCEDEFS
パラメータが使用されていると、Replicatが異常終了します。ASSUMETARGETDEFS
の詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
定義ファイルの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
TRUNCATE
文は、次のようにサポートされます。
Oracle GoldenGateのフルDDLサポートの一環として、TRUNCATE TABLE
、ALTER TABLE TRUNCATE PARTITION
および他のDDLがサポートされます。これは、DDLパラメータによって制御されます(「DDLサポートの有効化」を参照)。
スタンドアロンTRUNCATE
サポートとして。このサポートによって、TRUNCATE TABLE
はレプリケートできますが、他のDDLはできません。GETTRUNCATES
パラメータによって、スタンドアロンのTRUNCATE
機能が制御されます。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。
重複操作によるエラーを回避するために、同時にアクティブにできるのはこれらの機能の1つだけです。
DDLレプリケーションを構成するには、ソース・データベースと同期しているターゲット・データベースから開始します。DDLサポートはReplicatの初期ロード・メソッドと互換性があります。
初期ロードを実行する前に、DDLの抽出およびレプリケーションを無効化します。DDL処理は、ExtractおよびReplicatのパラメータ・ファイルのDDLパラメータによって制御されます。
ソース・データとターゲット・データの初期同期ができたら、ソース・アプリケーションを実行する前に、NEXTVAL
ですべてのソース順序値を少なくとも1回使用します。システム内の各順序からNEXTVAL
を選択するスクリプトを使用できます。これは、Extractの実行中に行われる必要があります。
CREATE
操作またはRENAME
操作の結果生じた新規のOracle表に対するDML操作をレプリケートするには、新規表の名前がパラメータ・ファイルのTABLE
文およびMAP
文に指定される必要があります。ワイルドカードを使用して、それらが必ず含まれるようにできます。
CREATE USER
を使用して新規ユーザーを作成し、新規または名前が変更された表をそのスキーマに移動するには、新規ユーザー名がTABLE
文およびMAP
文に指定される必要があります。新規ユーザーfin2
を作成し、新規または名前が変更された表をそのスキーマに移動する場合、fin2
オブジェクトをターゲットの同じスキーマにマップするか、異なるスキーマにマップするかに応じて、パラメータ文は次のようになります。
Extract:
TABLE fin2.*;
Replicat:
MAP fin2.*, TARGET different_schema
.*;