この章の内容は次のとおりです。
ある表から別の表にデータをレプリケートする場合、ソース表とターゲット表の列構造(メタデータ)が同一かどうかは重要な問題です。Oracle GoldenGateは、次の目的でメタデータを参照します。
ソースで、取得された操作に関する完全な情報をReplicatプロセスに提供するため。
ターゲットで、レプリケートされたデータがReplicatによって正しくマップされ、(必要に応じて)変換されるよう、ターゲット表の構造を決めるため。
次に示すシナリオでは、それぞれ異なるパラメータまたはパラメータ・セットを使用して、メタデータを処理するOracle GoldenGateプロセスに対してメタデータを正しく表現する必要があります。
ソース表を、同一のメタデータ定義を持つターゲット表にレプリケートする場合(同機種レプリケーション)。
ソース表を、異なるメタデータ定義を持つターゲット表にレプリケートする場合。
ソース表を2つのターゲット表(同一の定義を持つターゲット表と異なる定義を持つターゲット表)にレプリケートする場合。
Oracle GoldenGateは、ローカル・データベースに問い合せて一方の定義セットを取得できますが、リモート・データベースから定義を取得するにはデータ定義ファイルが必要になります。データ定義ファイルには、レプリケート対象データのメタデータに関する情報が含まれています。次の2種類の定義ファイルがあります。
ソース定義ファイルには、ソース表の定義が含まれています。
ターゲット定義ファイルには、ターゲット表の定義が含まれています。
パラメータ・ファイルでは複数のデータ定義ファイルを使用できます。たとえば、それぞれに異なるアプリケーションの定義を含めることができます。
データ定義ファイルの形式は内部使用を目的としているため、手順に記載されている場合、またはサポート担当者から指示された場合を除き、Oracle GoldenGateユーザーが編集しないでください。ファイルの先頭に、DEFGENのバージョン、キャラクタ・セットの情報、データベース・タイプ、ロケール、およびその他のデータ・プロパティを示す内部メタデータからなるファイル・ヘッダーがあります。ヘッダーの次にあるのが表定義セクションです。各表定義セクションには、表名、レコード長、列数、および1つ以上の列定義が含まれています。
使用する定義ファイルのタイプは、列のマッピングおよび変換がどこで実行されるかによって異なります。
WindowsまたはUNIXベースの任意のタイプのデータベース・システムからWindowsまたはUNIXベースの他のシステムにレプリケートする場合、マッピングと変換はExtract、データ・ポンプExtract、Replicatのいずれでも実行できますが、通常はターゲット・システムのReplicatによって実行されます。ただし、Oracle GoldenGateで異なるキャラクタ・セット間の変換を行う必要がある場合、ターゲットのReplicatによってマッピングと変換が行われる必要があります。「定義ファイルのキャラクタ・セットの影響の理解」を参照してください
Windows、UNIXまたはLinuxベースの任意のデータベース・システムからNonStopシステム上のEnscribeターゲットにレプリケートする場合、マッピングと変換はWindows、UNIXまたはLinuxシステムで実行する必要があります。2つおよび3つの部分からなるSQL名およびデータ型を、NonStopプラットフォームで使用される3つの部分からなるファイル名に変換できるのはExtractのみです。このシナリオでは、Oracle GoldenGateはソースとターゲットの間でキャラクタ・セットを変換できません。「定義ファイルのキャラクタ・セットの影響の理解」を参照してください
したがって、次のようになります。
列のマッピングおよび変換をターゲットで実行するには、ソースで生成されたソース定義ファイルを使用して、Replicatにソース定義を提供します。
列のマッピングおよび変換をソースで実行するには、ターゲットで生成されたターゲット定義ファイルを使用し、プライマリExtractとデータ・ポンプExtractのどちらが変換を実行するかに応じて、該当するプロセスにターゲット定義を提供します。
中間システムで列マッピングと変換を行うには、複数の定義ファイル・タイプを使用する必要がある場合があります。中間システムでデータ・ポンプを使用するレポート構成の作成およびカスケード・レポート構成の作成を参照してください。中間システムにReplicatがない場合、キャラクタ・セット間の変換は実行できないことに注意してください。
Oracle GoldenGateでは、データの変換を行う場合は、データベースのキャラクタ・セット・エンコーディングを考慮に入れ、定義ファイルを作成する場合は、ローカル・オペレーティング・システムのキャラクタ・セットを考慮に入れます。ソース・データとターゲット・データのキャラクタ・セットが異なる場合、次のガイドラインを考慮に入れます。
異なるキャラクタ・セット間でレプリケートされたデータの変換を行うプロセスはReplicatのみです。ソース・データベースのキャラクタ・セットからターゲット・データベースのキャラクタ・セット(カスケード構成では中間システムのデータベースのキャラクタ・セット)へデータを変換します。そのため、ソースとターゲットのキャラクタ・セットが異なる場合、データ・マッピングと変換はReplicatによって行われる必要があります。データ・ポンプのみが含まれるソース・システムや中間システムで行うことはできません。このような場合、ターゲット定義ファイルは無効です。
デフォルトでは、定義ファイルはDEFGENによってローカル・オペレーティング・システムのキャラクタ・セットで記述されます。次の条件を満たす場合、エンコーディング関連の問題が生じることなく、定義ファイルをローカル・システムで作成し、リモート・システムに転送できます。
定義ファイルの転送先のリモート・システムに、ローカル・システムと同じか同等のオペレーティング・システム・キャラクタ・セットがあります
リモート・システムのオペレーティング・システム・キャラクタ・セットは、ローカル・システムのオペレーティング・システム・キャラクタ・セットのサブセットです。たとえば、ソースとターゲットのキャラクタ・セットがいずれもASCII互換またはEBCDIC互換で、表名と列名がすべて7ビットのUS-ASCIIまたはそれと同等の文字を使用している場合、ソースとターゲットのシステム間で定義ファイルを移動できます。
オペレーティング・システム・キャラクタ・セット同士の多くは、あまり互換性がないか、まったく互換性がありません。リモート・システムで使用されるものと同じか、互換性のあるキャラクタ・セットで定義ファイルを記述するには、DEFGENを構成する際、DEFSFILE
パラメータのCHARSET
オプションを使用します。
既存の定義ファイルを、キャラクタ・セットに互換性のないオペレーティング・システムへ転送する場合、そのシステムでDEFGENユーティリティを実行して、ファイルのキャラクタ・セットを目的のものに変換できます。この手順では、2つの入力引数(定義ファイルの名前とUPDATECS
character_set
パラメータ)を指定します。次に例を示します。
defgen ./dirdef/source.def UPDATECS UTF-8
UPDATECS
が役立つのは、日本語のWindowsにおける日本語の表名がWindows CP932でデータ定義ファイルに記述されており、その定義ファイルを日本語のUNIXに転送するような場合です。UNIXがPCKロケールで構成されていないかぎり、このファイルは使用できません。そのため、UPDATECS
を使用して定義ファイルのエンコーディングを正しい形式に変換する必要があります。
定義ファイルを作成する際に定義テンプレートを指定すると、初期起動の後、Oracle GoldenGate構成に表が追加された場合に、新しい定義ファイルを作成する必要性が軽減されます。テンプレートを使用するには、たとえば顧客データベースに顧客ごとの別々の表が存在するが、すべての表が同一であるというように、新しい表がすべて同一の構造を持っている必要があります(「表が同一とみなされるためのルール」を参照)。
テンプレートを使用しない場合に、起動後、新しい表が追加されたときは、Oracle GoldenGate構成に追加された新しい表ごとに定義ファイルを生成し、その内容を既存のマスター定義ファイルにコピーしてから、プロセスを再起動する必要があります。
データ定義ファイルとテンプレート(必要な場合)を使用するようにOracle GoldenGateを構成するには、次の操作を実行します。
注意:
Oracleの順序に対するデータ定義ファイルは作成しないでください。このファイルは不要であり、DEFGENではサポートされません。
ローカルとリモートのオペレーティング・システムが異なり、リモート・オペレーティング・システムのキャラクタ・セット用に定義ファイルが作成されている場合に、データ定義ファイルをリモート・システムにFTP送信するには、BINARY
モードを使用します。こうすることで、FTPプログラムによって予期しない文字(復帰改行文字や改行文字など)がファイルに挿入されるのを回避できます。z/OSからz/OS以外のプラットフォームへ定義ファイルを転送する場合、必ずBINARY
モードを使用してください。
次の方法でデータ定義ファイルを適切なOracle GoldenGateプロセスに関連付けます。
Extractパラメータ・ファイルのTARGETDEFS
パラメータを使用して、ターゲット定義ファイルをExtractグループまたはデータ・ポンプに関連付けます。
Replicatパラメータ・ファイルのSOURCEDEFS
パラメータを使用して、ソース定義ファイルをReplicatグループに関連付けます。
Oracle GoldenGateによって、ソース・データベースもターゲット・データベースも含まない中間システムでマッピングまたは変換を実行する場合、パラメータ・ファイルのSOURCEDEFS
およびTARGETDEFS
を使用して、ソース定義ファイルおよびターゲット定義ファイルをデータ・ポンプExtractに関連付けます。Oracle Databaseでは、中間システムにOracleライブラリも存在している必要があります。
複数の定義ファイルを指定する正しい方法は、「定義ファイルの使用例」を参照してください。
同じパラメータ・ファイルで、SOURCEDEFS
とASSUMETARGETDEFS
を使用しないでください。ASSUMETARGETDEFS
の詳細は、同一のメタデータを想定するためのOracle GoldenGateの構成を参照してください。
Oracle GoldenGate構成内の新しい表を定義テンプレートにマップするには、TABLE
パラメータとMAP
パラメータの次のオプションを適宜使用します。
ソース定義テンプレートの名前を指定するには、DEF
を使用します。
ターゲット定義テンプレートの名前を指定するには、TARGETDEF
を使用します。
これらのオプションを指定すると、ExtractプロセスまたはReplicatプロセスで指定のテンプレートと同じ定義が使用されるため、新しい表の定義ファイルを新たに作成したり、プロセスを再起動したりする必要はありません。
このトピックには、定義ファイルを含むいくつかの基本的な使用例が含まれます。
次の構成では、ソース定義ファイルを出力として作成するDEFGENパラメータ・ファイルを使用します。この例は、Oracleデータベースの表を対象としています。
DEFSFILE C:\ggs\dirdef\record.def USERIDALIAS ogg TABLE acct.cust100, DEF custdef; TABLE ord.*; TABLE hr.*;
このDEFGEN構成の結果は次のとおりです。
名前別の個別定義が、ord
およびhr
スキーマのすべての表に対して作成されます。
表acct.cust100
に基づいてcustdef
テンプレートが作成されます。データベースには、それぞれacct.cust100
と同一の定義を持つ他のacct.cust*
表が存在します。
表は、Replicatのパラメータ・ファイルで次のようにマップされます。
-- This is a simplified parameter file. Your requirements may vary. REPLICAT acctrep USERIDALIAS ogg SOURCEDEFS c:\ggs\dirdef\record.def MAP acct.cust*, TARGET acct.cust*, DEF custdef; MAP ord.prod, TARGET ord.prod; MAP ord.parts, TARGET ord.parts; MAP hr.emp, TARGET hr.emp; MAP hr.salary, TARGET hr.salary;
最初のMAP
文のDEF
オプションで指定したとおり、ワイルドカード指定acct.cust*
に一致する表の定義はcustdef
テンプレートから取得されます。
同じ表のターゲット定義が必要な場合、その表をプライマリExtractまたはデータ・ポンプに対してマップできます。
ターゲットがEnscribeデータベースの場合、ソース定義のかわりにターゲット定義が必要です。
マッピングと変換を中間システムで実行する場合、ソース定義に加えてターゲット定義も必要です。
ターゲット定義ファイルを作成するためのDEFGEN構成は次のようになります。
DEFSFILE C:\ggs\dirdef\trecord.def USERIDALIAS ogg TABLE acct.cust100, DEF tcustdef; TABLE ord.*; TABLE hr.*;
注意:
ソース定義ファイルを作成するDEFGEN構成については、前の例を参照してください。
Extract構成は次のようになります。
-- This is a simplified parameter file. Your requirements may vary. EXTRACT acctex USERIDALIAS ogg RMTHOSTOPTIONS sysb, MGRPORT 7890, ENCRYPT AES192 KEYNAME mykey1 ENCRYPTTRAIL AES192 RMTTRAIL $data.ggsdat.rt SOURCEDEFS c:\ggs\dirdef\record.def TARGETDEFS c:\ggs\dirdef\trecord.def TABLE acct.cust*, TARGET acct.cust*, DEF custdef, TARGETDEF tcustdef; TABLE ord.prod, TARGET ord.prod; TABLE ord.parts, TARGET ord.parts; TABLE hr.emp, TARGET hr.emp; TABLE hr.salary, TARGET hr.salary;
この例では、acc.cust*
表に対して、custdef
(record.def
ファイルから)という名前のソース・テンプレートとtcustdef
(trecord.def
ファイルから)という名前のターゲット・テンプレートが使用されます。ord
およびhr
スキーマの表の定義は、表名に基づいた明示的な定義から取得されます(そのかわりに、ここでワイルドカード指定を使用することも可能です)。
これは、複数の定義ファイルの使用方法を示す単純な例です。パラメータの要件は、Oracle GoldenGateトポロジとデータベース・タイプによって異なる場合があります。
次に示すのは、1つ目のデータ定義ファイルを作成するDEFGENパラメータ・ファイルです。
DEFSFILE C:\ggs\dirdef\sales.def USERIDALIAS ogg TABLE ord.*;
次に示すのは、2つ目のデータ定義ファイルを作成するDEFGENパラメータ・ファイルです。ファイル名および表の指定が1つ目のものとは異なります。
DEFSFILE C:\ggs\dirdef\admin.def USERIDALIAS ogg TABLE hr.*;
1つ目の定義ファイルと2つ目の定義ファイルの表は、同じReplicatパラメータ・ファイルで次のようにマップされます。
REPLICAT acctrep USERIDALIAS ogg SOURCEDEFS c:\ggs\dirdef\sales.def MAP ord.*, TARGET ord.*; SOURCEDEFS c:\ggs\dirdef\admin.def MAP hr.*, TARGET hr.*;
証跡リカバリ・プロセスには、場合によって、破損または欠落した証跡ファイルをOracle GoldenGateが自動的に再作成する機能があります。Extractポンプの再起動時にポンプが書き込んでいた最後の証跡が存在しない場合、Extractポンプはターゲット・システム上で欠落した証跡ファイルの再作成を試みます。これは、プロセスのチェックポイント情報と前回の有効な証跡ファイルを使用して自動的に実行されます。Replicatプロセスは、新しい証跡リカバリ機能によって再作成された証跡ファイル内に重複データがあると、そのデータを自動的にスキップします。このリカバリは、この順序番号以降にターゲット証跡が1つ以上あり、Extractポンプの読取り元のソース上に証跡ファイルがまだ存在する場合に発生します。
このプロセスは、ターゲット上で破損または無効な証跡ファイルを再作成する場合にも使用できます。破損した証跡ファイルとそれ以降の証跡ファイルを単純に削除してから、Extractポンプを再起動します。この新しい動作では、PURGEOLDEXTRACTS MINKEEP
ルールを適切に構成して、ターゲット環境の再構築に使用できるソースの証跡ファイルが必ず存在するようにしておくことをお薦めします。この機能では、ソースとターゲットの両方のサーバーでOracle GoldenGateリリース12.1.2.1.8以上が使用されている必要があります。NOFILTERDUPTRANSACTIONS
を指定してReplicatを起動すると、Replicatのデフォルト動作が無効になり、ターゲット・データベースに適用済のトランザクションが再度適用される可能性があるため、それは実行しないでください。
このリリースのデフォルト動作では、ソースのメタデータを格納し、ターゲットへ転送して、証跡ファイルごとにカプセル化します。つまり、各ファイルにメタデータ・レコードを追加することで、自己記述型のExtract証跡またはファイルが作成されます。メタデータ・レコードには次の2種類があります。
データベース定義レコード(DDR)
DDRでは、キャラクタ・セットやタイムゾーンなど、特定のデータベースに関する情報を提供します。データベース定義レコードは、キャプチャ対象のプラガブル・データベースごとにデータベース・メタデータを格納するため、証跡に追加されます。プラガブル・データベースのすべての行変更レコードには、そのプラガブル・データベースに対応するDDRに基づいて、キャラクタとローカル・タイム・ゾーンのタイムスタンプが設定されています。DDRは、統合データベースと非統合データベースの両方に対して生成されます。
表定義レコード(TDR)
TDRは、表および表に含まれる列に関する定義の詳細を提供します。このレコードの内容は、定義ファイル(file_def
およびcol_def
クラスにある情報のサブセット)に記載されている内容と似ています。各データベースは、自身のデータベース固有情報を各TDRに埋め込むことができます。TDRには完全な表定義が含まれ、これを使用して同じ表の様々な行変更レコードが記述されます。出力証跡が新しいファイルにロール・オーバーするか、ソース表定義が変更された場合に、新しいTDRが書き込まれます。
TDRには、行変更レコードで表される表オブジェクトの定義が記述されていることに注意する必要があります。これはソースの表定義に似ていますが、まったく同じではありません。たとえば、列変換関数がソース列に適用されている場合、データベース内にあるその値のメタデータは、証跡ファイルに表示されるメタデータとは異なります。
自己記述型の証跡ファイル・フォーマットのメタデータ・レコードは、次のように動作します。
自己記述型の証跡ファイルを使用すると、SOURCEDEFS
やASSUMETARGETDEFS
が必要なくなるので、パラメータ・ファイルが簡素化され、異種レプリケーションの構成が簡単になり、次のことを実現します。
オブジェクト名の圧縮に伴う証跡ファイル・サイズの削減。
異なるキャラクタ・セットとタイムゾーンを持つ複数のカタログから1つの証跡にデータを抽出する機能。
3つ以上のOracleデータベース間でDDLレプリケーションを構成する機能。GETREPLICATS
、UPDATEMETADATA
およびNOTAG
の各パラメータを使用する必要はありません。ソース表とターゲット表に類似性がない場合に、Oracle GoldenGateプロセスを同期することなく、DDLをレプリケートできます。
ソース定義ファイルの作成および管理が不要。
自己記述型の証跡の動作の理解
ソース表定義の変更時、新しいTDRをExtractのメモリーおよび証跡ファイルに更新するには、次の基準を満たす必要があります。
統合Extract (Oracle Database 11.2.0.4以上および互換 = 11.2.0.4以上): ソース表でDDLが実行された後、更新されたメタデータ・レコードが統合Extractによってシームレスに生成されるため、手動の手順は必要ありません。DDLレプリケーションが有効かどうかに関係なく、このようになります。
クラシックExtract: DDL後に更新されたメタデータ・レコードをExtractによってシームレスに生成するには、Extractパラメータ・ファイルにDDLパラメータを含む必要があります。または、12.2より前のリリースでのように、Extractがすべての関連データベース変更を証跡に完全に出力して停止した後でのみ、DDLを実行する必要があります。DDLが実行された後、Extractを再起動する必要があります。以前のリリースと異なり、Replicatを停止し、DEFGEN
を使用してSOURCEDEFS
を再生成する必要はありません。
12.2より前のリリースでのように、Extractがすべての関連データベース変更を証跡に完全に出力して停止した後でのみ、DDLを実行する必要があります。DDLが実行された後、Extractを再起動する必要があります。以前のリリースと異なり、Replicatを停止し、DEFGEN
を使用してSOURCEDEFS
を再生成する必要はありません。
次のサポート情報を確認します。
証跡ファイル・フォーマット:
メタデータ・レコードを含めるには、Oracle GoldenGate release 12c (12.2.0.1)以上であることが必要です。
複数証跡構成で、古い証跡フォーマットを使用して12c (12.2.0.1)の証跡フォーマットは作成できません。
FORMATASCII
、FORMATSQL
およびFORMATXML
証跡にメタデータ・レコードを含めることはできません。
既存の証跡ファイル構成では、表のメタデータの解決方法について、次に示す以前の抽出証跡と自己記述型の抽出証跡とを簡単に切り替えることができます。
USE_TRAILDEFS
GLOBALSパラメータを使用して、すべてのポンプとReplicatを制御する方法。
SOURCEDEFS
およびASSUMETARGETDEFS
のOVERRIDE
オプションを使用して、ポンプまたはReplicatを個別に制御する方法。これはお薦めされていません。
ログダンプでは、DEFGEN出力のようなメタデータ・レコードを表示します。
リバースは12c (12.2.0.1)証跡フォーマットではサポートされません。
表がマップされている場合、生成されたTDRはソース表ではなくマップされた表の定義に基づきます。
証跡のメタデータは、HP NonStop (Guardian)を除くすべてのデータベースでサポートされます。
USE_TRAILDEFS
GLOBALSパラメータでは、すべてのポンプとReplicatを有効化または無効化します。SOURCDEFS
とASSUMETARGETDEF
およびそのソース表定義に関連するこのコマンドの使用方法を次に示します。
図13-1 USE_TRAILDEFS
| NOUSE_TRAILDEFS
の使用方法
自己記述型の証跡ファイルを使用する場合は、ASSUMETARGETDEFS
およびSOURCEDEFS
の各パラメータとともにOVERRIDE
オプションを使用する必要があります。
次に、Extractパラメータ・ファイルの例を示します。
EXTRACT ext1 USERID tkggadmin@inst1, password tkggadmin DDL include objname hr.*, include objname st_hr.* RMTTRAIL $data/ggs12.2/a1 TABLE hr.*; TABLE st_hr.salary, TARGET hr.salary, COLMAP (USEDEFAULTS, ts = @GETENV('GGHEADER' , 'COMMITTIMESTAMP')); RMTTRAIL $data/ggs12.2/a2, NO_OBJECTDEFS TABLE orders.*;
次に、Replicatパラメータ・ファイルの例を示します。
REPLCAT rep1 USERID tkggadmin@inst2, password tkggadmin DDLERROR default discard DDL include all DISCARDFILE ./dirrpt/rep1.dsc purge MAP hr.*, TARGET hr.*;
注意:
この項は、自己記述型の証跡ファイルには適用されません。
ソース表とターゲット表が同一のメタデータ定義を持つ場合、Replicatのパラメータ・ファイルでASSUMETARGETDEFS
パラメータを使用します。このパラメータは、Replicatに対して、ターゲットの定義がソースの定義と同じであると想定し、SQL文の作成時にその定義をレプリケートされたデータに適用するよう指示します。ソース表とターゲット表はあらゆる点で同一である必要があるため、変換処理は不要です(ただし、カタログ、コンテナ、表の所有者と名前のいずれかまたは両方が異なっていてもかまいません)。
ソースとターゲットの構造が同一であるためには、次の要件を満たす必要があります。
データベース・タイプが同じであること(すべてOracleであるなど)。
キャラクタ・セットおよびロケールが同じであること(american_AMERICA
など)。
同じ数の列が含まれていること。
列名が同一であること(該当する場合は大/小文字、空白、引用符も含む)。
データ型が同一であること。
列の長さが同一であること。
文字の列の列長さセマンティクス(バイトか文字か)が同じであること。
すべての列が同じ順序で定義されていること。
次の単純なReplicatパラメータ・ファイルは、ASSUMETARGETDEFS
の使用方法を示しています。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXの「ASSUMETARGETDEFS」を参照してください。
-- Specifies the group name. REPLICAT acctrep -- Specifies database login with an alias to a credential in the credential store. USERIDALIAS ogg -- Specifies a file for discard output. DISCARDFILE ./dirrpt/backup/r_prod.dsc, APPEND -- States that source and target definitions are identical. ASSUMETARGETDEFS -- Maps source tables to target tables. MAP hq.product, TARGET region1.product; MAP hq.price, TARGET region1.price;
ソースとターゲットの構造が異なる場合は、SOURCEDEFS
パラメータを使用します。異なるメタデータを想定するためのOracle GoldenGateの構成を参照してください。ASSUMETARGETDEFS
とSOURCEDEFS
は、同じパラメータ・ファイルで使用できません。
「表が同一とみなされるためのルール」のルールを満たさない場合、ソースとターゲットのメタデータ定義は同一であるとみなされません。ソース表とターゲット表の定義が異なる場合、Oracle GoldenGateでは、ある形式から別の形式への変換を実行する必要があります。変換を実行するには、Oracle GoldenGateが両方の定義セットを認識していることが必要です。
注意:
この項は、自己記述型の証跡ファイルには適用されません。
ASSUMETARGETDEFS
とSOURCEDEFS
は、同じパラメータ・ファイルで使用できます。これが可能なのは、一部のソース表とターゲット表のペアの間では列のマッピングまたは変換を実行する必要があるが、その他の表のペアは同一である場合です。
次の例は、同じパラメータ・ファイルでSOURCEDEFS
とASSUMETARGETDEFS
を使用する方法を示しています。この例は、acct
、ord
、hr
の各スキーマの表がSOURCEDEFS
を必要とする前の例に基づいていますが、動的に作成されstock
という名前がランダムな数値とともに付加される表を持つrpt
スキーマが追加されています。Oracle GoldenGateでDMLだけでなくDDLもレプリケートするには、ターゲット表が同一であることが必要です。その場合、ASSUMETARGETDEFS
を指定する必要があります。
REPLICAT acctrep USERIDALIAS ogg SOURCEDEFS c:\ggs\dirdef\record.def MAP acct.cust*, TARGET acct.cust*, DEF custdef; MAP ord.prod, TARGET ord.prod; MAP ord.parts, TARGET ord.parts; MAP hr.emp, TARGET hr.emp; MAP hr.salary, TARGET hr.salary; ASSUMETARGETDEFS MAP rpt.stock, TARGET rpt.stock;