プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成
12c (12.2.0.1)
E70107-04
目次へ移動
目次

前
次

13.4 DDLサポートの構成ガイドライン

次に、Oracle GoldenGateプロセスがDDLレプリケーションをサポートするよう構成する際に考慮するガイドラインを示します。

13.4.1 データベースの権限

Oracle GoldenGateでDDLのキャプチャとレプリケーションをサポートするために必要なデータベース権限については、「Oracle GoldenGate資格証明の確立」を参照してください。

13.4.2 並列処理

Extract/Replicatの並列処理を使用している場合は、関連するDDLとDMLを同じプロセス・ストリームに保持し、データの整合性を確保します。プロセスを次のように構成します。

  • あるオブジェクトに対するすべてのDDLおよびDMLが、同じExtractグループおよび同じReplicatグループで処理されるようにします。

  • 相互に関連するすべてのオブジェクトが、同じプロセス・グループで処理されるようにします。

たとえば、ReplicatATable1のDMLを処理する場合は、Table1のDDLも処理する必要があります。Table2Table1に対する外部キーがある場合は、そのDMLとDDLの操作もReplicatAによって処理される必要があります。

Extractグループが、異なるReplicatグループによって読み取られる複数の証跡に書き込む場合、ExtractはすべてのDDLをすべての証跡に送信します。Replicatパラメータ・ファイルにあるDDLパラメータのフィルタ・オプションを使用してDDLをフィルタするには、各Replicatグループを使用します。

13.4.3 オブジェクト名

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プロセスが異常終了し、プロセス・レポートにエラーが書き込まれます。

13.4.4 データ定義

DDLサポートには同一の構成が必要であるため、Replicatパラメータ・ファイルにASSUMETARGETDEFSパラメータを使用する必要があります。オブジェクトがDDLサポート向けに構成されている場合に、SOURCEDEFSパラメータが使用されていると、Replicatが異常終了します。ASSUMETARGETDEFSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

定義ファイルの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

13.4.5 切捨て

TRUNCATE文は、次のようにサポートされます。

  • Oracle GoldenGateのフルDDLサポートの一環として、TRUNCATE TABLEALTER TABLE TRUNCATE PARTITIONおよび他のDDLがサポートされます。これは、DDLパラメータによって制御されます(「DDLサポートの有効化」を参照)。

  • スタンドアロンTRUNCATEサポートとして。このサポートによって、TRUNCATE TABLEはレプリケートできますが、他のDDLはできません。GETTRUNCATESパラメータによって、スタンドアロンのTRUNCATE機能が制御されます。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

重複操作によるエラーを回避するために、同時にアクティブにできるのはこれらの機能の1つだけです。

13.4.6 初期同期

DDLレプリケーションを構成するには、ソース・データベースと同期しているターゲット・データベースから開始します。DDLサポートはReplicatの初期ロード・メソッドと互換性があります。

初期ロードを実行する前に、DDLの抽出およびレプリケーションを無効化します。DDL処理は、ExtractおよびReplicatのパラメータ・ファイルのDDLパラメータによって制御されます。

ソース・データとターゲット・データの初期同期ができたら、ソース・アプリケーションを実行する前に、NEXTVALですべてのソース順序値を少なくとも1回使用します。システム内の各順序からNEXTVALを選択するスクリプトを使用できます。これは、Extractの実行中に行われる必要があります。

13.4.7 CREATEまたはRENAMEの後のデータ継続性

CREATE操作またはRENAME操作の結果生じた新規のOracle表に対するDML操作をレプリケートするには、新規表の名前がパラメータ・ファイルのTABLE文およびMAP文に指定される必要があります。ワイルドカードを使用して、それらが必ず含まれるようにできます。

CREATE USERを使用して新規ユーザーを作成し、新規または名前が変更された表をそのスキーマに移動するには、新規ユーザー名がTABLE文およびMAP文に指定される必要があります。新規ユーザーfin2を作成し、新規または名前が変更された表をそのスキーマに移動する場合、fin2オブジェクトをターゲットの同じスキーマにマップするか、異なるスキーマにマップするかに応じて、パラメータ文は次のようになります。

Extract:

TABLE fin2.*;

Replicat:

MAP fin2.*, TARGET different_schema.*;