ヘッダーをスキップ
Oracle® GoldenGate Oracle GoldenGateの管理for Windows and UNIX
12c (12.1.2)
E49846-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

13 レプリケートされたデータとメタデータとの関連付け

この章では、メタデータの使用方法と、レプリケートされたデータとメタデータとを関連付ける方法について説明します。

この章の内容は次のとおりです。

13.1 概要

ある表から別の表にデータをレプリケートする際に考慮すべき重要な点の1つは、ソース表とターゲット表の列構造(メタデータ)が同一であるかどうかです。Oracle GoldenGateは、次の目的でメタデータを参照します。

  • ソースでは、取得された操作に関する完全な情報をReplicatプロセスに提供するため。

  • ターゲットでは、レプリケートされたデータがReplicatによって正しくマップされ、必要に応じて変換されるように、ターゲット表の構造を判別するため。

次に示すシナリオでは、それぞれ異なるパラメータまたはパラメータ・セットを使用して、メタデータを処理するOracle GoldenGateプロセスに対してメタデータを正しく表現する必要があります。

  • ソース表を、同一のメタデータ定義を持つターゲット表にレプリケートする場合(同機種レプリケーション)。

  • ソース表を、異なるメタデータ定義を持つターゲット表にレプリケートする場合。

  • ソース表を2つのターゲット表(同一の定義を持つターゲット表と異なる定義を持つターゲット表)にレプリケートする場合。

13.2 同一のメタデータを想定するためのOracle GoldenGateの構成

ソース表とターゲット表が同一のメタデータ定義を持つ場合、Replicatのパラメータ・ファイルでASSUMETARGETDEFSパラメータを使用します。このパラメータは、Replicatに対して、ターゲットの定義がソースの定義と同じであると想定し、SQL文の作成時にその定義をレプリケートされたデータに適用するよう指示します。ソース表とターゲット表はあらゆる点で同一である必要があるため、変換処理は不要です(ただし、カタログ、コンテナ、表の所有者と名前のいずれかまたは両方が異なっていてもかまいません)。

13.2.1 表が同一とみなされるためのルール

ソースとターゲットの構造が同一であるためには、次の要件を満たす必要があります。

  • データベース・タイプが同じであること(すべて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パラメータを使用します。13.3項「異なるメタデータを想定するためのOracle GoldenGateの構成」を参照してください。ASSUMETARGETDEFSSOURCEDEFSは、同じパラメータ・ファイルで使用できません。

13.3 異なるメタデータを想定するためのOracle GoldenGateの構成

13.2.1項「表が同一とみなされるためのルール」のルールを満たさない場合、ソースとターゲットのメタデータ定義は同一であるとみなされません。ソース表とターゲット表の定義が異なる場合、Oracle GoldenGateでは、ある形式から別の形式への変換を実行する必要があります。変換を実行するには、Oracle GoldenGateが両方の定義セットを認識していることが必要です。Oracle GoldenGateは、ローカル・データベースに問い合せて一方の定義セットを取得できますが、リモート・データベースから定義を取得するにはデータ定義ファイルが必要になります。データ定義ファイルには、レプリケート対象データのメタデータに関する情報が含まれています。次の2種類の定義ファイルがあります。

  • ソース定義ファイルには、ソース表の定義が含まれています。

  • ターゲット定義ファイルには、ターゲット表の定義が含まれています。

パラメータ・ファイルでは複数のデータ定義ファイルを使用できます。たとえば、それぞれに異なるアプリケーションの定義を含めることができます。

13.3.1 定義ファイルの内容

データ定義ファイルの形式は内部使用を目的としているため、手順に記載されている場合、またはサポート担当者から指示された場合を除き、Oracle GoldenGateユーザーが編集しないでください。ファイルの先頭に、DEFGENのバージョン、キャラクタ・セットの情報、データベース・タイプ、ロケール、およびその他のデータ・プロパティを示す内部メタデータからなるファイル・ヘッダーがあります。ヘッダーの次にあるのが表定義セクションです。各表定義セクションには、表名、レコード長、列数、および1つ以上の列定義が含まれています。

13.3.2 使用する定義ファイルのタイプと場所

使用する定義ファイルのタイプは、列のマッピングおよび変換がどこで実行されるかによって異なります。

  • WindowsまたはUNIXベースの任意のタイプのデータベース・システムからWindowsまたはUNIXベースの他のシステムにレプリケートする場合、マッピングと変換はExtract、データ・ポンプExtract、Replicatのいずれでも実行できますが、通常はターゲット・システムのReplicatによって実行されます。ただし、Oracle GoldenGateで異なるキャラクタ・セット間の変換を行う必要がある場合、ターゲットのReplicatによってマッピングと変換が行われる必要があります。13.3.3項「定義ファイルのキャラクタ・セットの影響の理解」を参照してください。

  • Windows、UNIXまたはLinuxベースの任意のデータベース・システムからNonStopシステム上のEnscribeターゲットにレプリケートする場合、マッピングと変換はWindows、UNIXまたはLinuxシステムで実行する必要があります。2つおよび3つの部分からなるSQL名およびデータ型を、NonStopプラットフォームで使用される3つの部分からなるファイル名に変換できるのはExtractのみです。このシナリオでは、Oracle GoldenGateはソースとターゲットの間でキャラクタ・セットを変換できません。13.3.3項「定義ファイルのキャラクタ・セットの影響の理解」を参照してください。

したがって、次のようになります。

  • 列のマッピングおよび変換をターゲットで実行するには、ソースで生成されたソース定義ファイルを使用して、Replicatにソース定義を提供します。

  • 列のマッピングおよび変換をソースで実行するには、ターゲットで生成されたターゲット定義ファイルを使用し、プライマリExtractとデータ・ポンプExtractのどちらが変換を実行するかに応じて、該当するプロセスにターゲット定義を提供します。

  • 中間システムで列マッピングと変換を行うには、複数の定義ファイル・タイプを使用する必要がある場合があります。5.4項「中間システムでデータ・ポンプを使用するレポート構成の作成」および5.5項「カスケード・レポート構成の作成」を参照してください。中間システムにReplicatがない場合、キャラクタ・セット間の変換は行われないことに注意してください。

13.3.3 定義ファイルのキャラクタ・セットの影響の理解

Oracle GoldenGateでは、データの変換を行う場合は、データベースのキャラクタ・セット・エンコーディングを考慮に入れ、定義ファイルを作成する場合は、ローカル・オペレーティング・システムのキャラクタ・セットを考慮に入れます。ソース・データとターゲット・データのキャラクタ・セットが異なる場合、次のガイドラインを考慮に入れます。

13.3.3.1 データのマッピングと変換をReplicatプロセスに限定

異なるキャラクタ・セット間でレプリケートされたデータの変換を行うプロセスはReplicatのみです。ソース・データベースのキャラクタ・セットからターゲット・データベースのキャラクタ・セット(カスケード構成では中間システムのデータベースのキャラクタ・セット)データを変換します。そのため、ソースとターゲットのキャラクタ・セットが異なる場合、データ・マッピングと変換はReplicatによって行われる必要があります。データ・ポンプのみが含まれるソース・システムや中間システムで行うことはできません。このような場合、ターゲット定義ファイルは無効です。

13.3.3.2 オペレーティング・システムのキャラクタ・セットが原因のファイルの破損の回避

デフォルトでは、定義ファイルはDEFGENによってローカル・オペレーティング・システムのキャラクタ・セットで記述されます。次の条件を満たす場合、エンコーディング関連の問題が生じることなく、定義ファイルをローカル・システムで作成し、リモート・システムに転送できます。

  • 定義ファイルの転送先のリモート・システムに、ローカル・システムと同じか同等のキャラクタ・セットがあります。

  • リモート・システムのオペレーティング・システム・キャラクタ・セットは、ローカル・システムのオペレーティング・システム・キャラクタ・セットのサブセットです。たとえば、ソースとターゲットのキャラクタ・セットがいずれもASCII互換またはEBCDIC互換で、表名と列名がすべて7ビットのUS-ASCIIまたはそれと同等の文字を使用している場合、ソースとターゲットのシステム間で定義ファイルを移動できます。

オペレーティング・システム・キャラクタ・セット同士の多くは、あまり互換性がないか、まったく互換性がありません。リモート・システムで使用されるものと同じか、互換性のあるキャラクタ・セットで定義ファイルを記述するには、DEFGENを構成する際、DEFSFILEパラメータのCHARSETオプションを使用します。

13.3.3.3 既存の定義ファイルのキャラクタ・セットの変更

既存の定義ファイルを、キャラクタ・セットに互換性のないオペレーティング・システムへ転送する場合、そのシステムでDEFGENユーティリティを実行して、ファイルのキャラクタ・セットを目的のものに変換できます。この手順では、2つの入力引数(定義ファイルの名前とUPDATECS character_setパラメータ)を指定します。例:

defgen ./dirdef/source.def UPDATECS UTF-8

UPDATECSが役立つのは、日本語のWindowsにおける日本語の表名がWindows CP932でデータ定義ファイルに記述されており、その定義ファイルを日本語のUNIXに転送するような場合です。UNIXがPCKロケールで構成されていないかぎり、このファイルは使用できません。そのため、UPDATECSを使用して定義ファイルのエンコーディングを正しい形式に変換する必要があります。

13.3.3.4 z/OSシステムから別のプラットフォームへのダウンロード

IBM z/OSプラットフォームで生成された定義ファイルをz/OS以外のプラットフォームに転送する場合、BINARYモードでダウンロードする必要があります。

13.3.4 定義テンプレートの使用

定義ファイルを作成する際に定義テンプレートを指定すると、初期起動の後、Oracle GoldenGate構成に表が追加された場合に、新しい定義ファイルを作成する必要性が軽減されます。テンプレートを使用するには、たとえば顧客データベースに顧客ごとの別々の表が存在するが、すべての表が同一であるというように、新しい表がすべて同一の構造を持っている必要があります(13.2.1項「表が同一とみなされるためのルール」を参照)。

テンプレートを使用しない場合に、起動後、新しい表が追加されたときは、Oracle GoldenGate構成に追加された新しい表ごとに定義ファイルを生成し、その内容を既存のマスター定義ファイルにコピーしてから、プロセスを再起動する必要があります。

13.3.5 データ定義を取得するためのOracle GoldenGateの構成

データ定義ファイルとテンプレート(必要な場合)を使用するようにOracle GoldenGateを構成するには、次の操作を実行します。

13.3.5.1 DEFGENの構成

メタデータ定義を取得するシステムで次の手順を実行します。

  1. Oracle GoldenGateディレクトリからGGSCIを実行します。

  2. GGSCIで、次のコマンドを発行してDEFGENのパラメータ・ファイルを作成します。

    EDIT PARAMS DEFGEN
    
  3. 表13-1にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。

    表13-1 DEFGENパラメータ

    パラメータ 説明
    CHARSET character_set
    

    DEFGENでパラメータ・ファイルの読取りに使用されるキャラクタ・セットを指定するには、このパラメータを使用します。デフォルトでは、パラメータ・ファイルのキャラクタ・セットはローカル・オペレーティング・システムのキャラクタ・セットです。CHARSETを使用する場合は、パラメータ・ファイルの1行目に指定する必要があります。

    DEFSFILE file_name [APPEND | PURGE] [CHARSET character_set] [FORMAT RELEASE major.minor]
    
    • APPENDを指定した場合、DEFGENは、指定のファイルがすでに存在すれば、既存の内容の最後に(現在の実行からの)新しい内容を書き込みます。

    • PURGEを指定した場合、DEFGENは、現在の実行からの新しい内容を書き込む前に、指定のファイルを消去します。これはデフォルトです。

    • CHARSETを指定した場合、オペレーティング・システムのデフォルト・キャラクタ・セットではなく、指定のキャラクタ・セットで定義ファイルが生成されます。

    • FORMAT RELEASEは、定義ファイルのOracle GoldenGateリリース・バージョンを指定します。定義ファイルが、DEFGENプロセスより古いバージョンのOracle GoldenGateにあるプロセスによって読み取られる場合に使用します。

    DEFGENの出力となるデータ定義ファイルの相対名または完全修飾名を指定します。

    各パラメータ・オプションとそれらがキャラクタ・セットに与える影響についての重要な情報は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

    追加情報は、13.3.3項「定義ファイルのキャラクタ・セットの影響の理解」を参照してください。

    [{SOURCEDB | TARGETDB} datasource]
    {USERIDALIAS alias | USERID user, PASSWORD password [encryption_options]}
    
    • SOURCEDB | TARGETDBでは、データソース名を指定します(接続情報の一部として必要な場合)。Oracleでは必要ありません。

    • USERID user, PASSWORD password [encryption_options]は、ユーザー名とパスワード、および暗号化オプション(オプション)を指定します。

    • USERIDALIASはOracle GoldenGate資格証明ストアに格納された資格証明を介するデータベース認証を提供します。

    データベース接続情報を指定します。

    datasourceは、DSN(データソース名)、SQL/MXカタログまたはOracleコンテナ・データベース(CDB)のコンテナです。Oracleコンテナ・データベースに接続する場合、複数のコンテナにあるオブジェクトに対して定義を生成する必要があるときは、一般ユーザーとしてrootコンテナに接続します。それ以外の場合は、特定のコンテナに接続して、そのコンテナのためだけの定義を生成できます。

    SOURCEDBUSERIDおよびUSERIDALIASの詳細(それらがサポートするデータベースなど)は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

    NOCATALOG

    定義が定義ファイルへ書き込まれる前に、表名からコンテナ名(Oracle)またはカタログ名(SQL/MX)を削除します。このパラメータは、2つの部分からなる名前(owner.object)のみをサポートするデータベースへのマッピングに定義ファイルが使用される場合に使用します。

    TABLE [container. | catalog.]owner.table
    [, {DEF | TARGETDEF} template];
    

    説明:

    • containerOracleコンテナ・データベース内のコンテナです。

    • catalogはSQL/MXデータベース内のカタログです。

    • ownerは、定義対象の表を含むスキーマの名前です。

    • tableは、定義対象の表です。

    • [, {DEF | TARGETDEF} template]を指定すると、この表のメタデータに基づいた定義テンプレートが追加で作成されます。このオプションは、初期ロードではサポートされません。このオプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

    定義を定義する1つ以上の表の完全修飾名を指定し、オプションで表のメタデータを定義テンプレートの基礎として使用します。大/小文字が区別されるデータベースに対しては、表名とテンプレート名における大/小文字の区別が維持されます。ワイルドカードの使用と大/小文字の区別の詳細は、4.5項「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。

    ソース定義ファイルを生成する場合はソース表を指定し、ターゲット定義ファイルを生成する場合はターゲット表を指定します。

    ワイルドカードの指定から表を除外するには、TABLEEXCLUDEパラメータを使用します。

    DEFGENでは、UDTがサポートされないことに注意してください。


  4. ファイルを保存して閉じます。

  5. GGSCIを終了します。

13.3.5.2 DEFGENの実行

  1. Oracle GoldenGateがインストールされているディレクトリから、次の引数を使用してDEFGENを実行します。この例は、UNIXファイル・システムの構造を示しています。

    defgen paramfile dirprm/defgen.prm [reportfile dirrpt/defgen.rpt]
    [NOEXTATTR]
    

    説明:

    • defgenは、プログラムの名前です。

    • paramfileは必須のキーワードです。dirprm/defgen.prmは、DEFGENパラメータ・ファイルの相対名またはフルパス名です。(例には通常の場所が示されています。)

    • reportfileは必須のキーワードです。dirrpt/defgen.rptは、画面および指定したレポート・ファイルに出力を送ります。(例には通常の場所が示されています。)画面に出力するのみの場合、reportfile引数は省略できます。

    • NOEXTATTRは、リリース11.2.1より古いOracle GoldenGateとの下位互換性を維持するために使用できますが、ASCII以外のキャラクタ・セット、大/小文字の区別、および空白とともに引用符で囲んだオブジェクト名をサポートしません。NOEXTATTRを指定すると、DEFGENは、Oracle GoldenGateリリース11.2.1で導入されたグローバリゼーション機能をサポートするデータベース・ロケールおよびキャラクタ・セットを組み込みません。表名または列名にマルチバイト文字や空白などの特殊文字が含まれている場合、NOEXTATTRを指定すると、DEFGENは表定義を組み込みません。パラメータ・ファイルでAPPENDモードが使用されている場合、NOEXTATTRは無視され、その他の属性が指定されているかどうかに関係なく、新しい表定義が既存のファイル形式で追加されます。

  2. 追加で作成する定義ファイルについて、前述の手順を繰り返します。

  3. ASCIIモードを使用して、ローカルのOracle GoldenGate dirdefサブディレクトリからリモートのdirdefサブディレクトリに定義ファイルをFTP送信します。

13.3.5.3 リモート・システムへの定義ファイルの転送

ローカルとリモートのオペレーティング・システムが異なり、リモート・オペレーティング・システムのキャラクタ・セット用に定義ファイルが作成されている場合に、データ定義ファイルをリモート・システムにFTP送信するには、BINARYモードを使用します。こうすることで、FTPプログラムによって予期しない文字(復帰改行文字や改行文字など)がファイルに挿入されるのを回避できます。z/OSからz/OS以外のプラットフォームへ定義ファイルを転送する場合、必ずBINARYモードを使用してください。

13.3.5.4 定義ファイルの指定

次の方法でデータ定義ファイルを適切なOracle GoldenGateプロセスに関連付けます。

  • Extractパラメータ・ファイルのTARGETDEFSパラメータを使用して、ターゲット定義ファイルをExtractグループまたはデータ・ポンプに関連付けます。

  • Replicatパラメータ・ファイルのSOURCEDEFSパラメータを使用して、ソース定義ファイルをReplicatグループに関連付けます。

  • Oracle GoldenGateによって、ソース・データベースもターゲット・データベースも含まない中間システムでマッピングまたは変換を実行する場合、パラメータ・ファイルのSOURCEDEFSおよびTARGETDEFSを使用して、ソース定義ファイルおよびターゲット定義ファイルをデータ・ポンプExtractに関連付けます。Oracle Databaseでは、中間システムにOracleライブラリも存在している必要があります。

複数の定義ファイルを指定する正しい方法は、13.3.7項「定義ファイルの使用例」を参照してください。

同じパラメータ・ファイルで、SOURCEDEFSASSUMETARGETDEFSを使用しないでください。ASSUMETARGETDEFSの詳細は、13.2項「同一のメタデータを想定するためのOracle GoldenGateの構成」を参照してください。

13.3.6 定義テンプレートに一致する表の追加

Oracle GoldenGate構成内の新しい表を定義テンプレートにマップするには、TABLEパラメータとMAPパラメータの次のオプションを適宜使用します。

  • ソース定義テンプレートの名前を指定するには、DEFを使用します。

  • ターゲット定義テンプレートの名前を指定するには、TARGETDEFを使用します。

これらのオプションを指定すると、ExtractプロセスまたはReplicatプロセスで指定のテンプレートと同じ定義が使用されるため、新しい表の定義ファイルを新たに作成したり、プロセスを再起動したりする必要はありません。

13.3.7 定義ファイルの使用例

このトピックには、定義ファイルを含むいくつかの基本的な使用例が含まれます。

ターゲット・システム上で使用するソース定義ファイルの作成

ソース・システム上で使用するターゲット定義ファイルの作成

ターゲット・システム上で使用する複数のソース定義ファイルの作成

13.3.7.1 ターゲット・システム上で使用するソース定義ファイルの作成

次の構成では、ソース定義ファイルを出力として作成する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テンプレートから取得されます。

13.3.7.2 ソース・システム上で使用するターゲット定義ファイルの作成

同じ表のターゲット定義が必要な場合、その表をプライマリ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スキーマの表の定義は、表名に基づいた明示的な定義から取得されます(そのかわりに、ここでワイルドカード指定を使用することも可能です)。

13.3.7.3 ターゲット・システム上で使用する複数のソース定義ファイルの作成

これは、複数の定義ファイルの使用方法を示す単純な例です。パラメータの要件は、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.*;

13.4 同じ定義と異なる定義の組合せを使用するためのOracle GoldenGateの構成

ASSUMETARGETDEFSSOURCEDEFSは、同じパラメータ・ファイルで使用できます。これが可能なのは、一部のソース表とターゲット表のペアの間では列のマッピングまたは変換を実行する必要があるが、その他の表のペアは同一である場合です。

次の例は、同じパラメータ・ファイルでSOURCEDEFSASSUMETARGETDEFSを使用する方法を示しています。この例は、acctordhrの各スキーマの表が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;