13 オンライン変更同期の構成

この章では、オンライン変更同期を構成する方法について説明します。

内容は次のとおりです。

オンライン変更同期の概要

オンライン変更同期では、データ変更を継続的に抽出およびレプリケートして、ほぼリアルタイムな状態にターゲット・データベースを維持します。必要なExtractおよびReplicatのプロセスおよび証跡の数は、デプロイするレプリケーション・トポロジと、使用しているプロセス・モードによって異なります。

特定のレプリケーション・トポロジのデプロイの詳細は、次のものを参照してください。

Oracleマルチテナント・コンテナ・データベース間でレプリケートする場合、複数のReplicatプロセスを構成する必要があることがあります。

特定のパフォーマンス・レベルを達成するために、複数のプロセス・グループを構成する必要がある場合があります。たとえば、ラグを特定のしきい値未満に抑えたい場合などです。ラグとは、ソース・アプリケーション内で変更が発生した時点と、それらの変更がターゲット・データベースに適用される時点との間の時間差です。

Oracle GoldenGateは、Oracle GoldenGate Managerインスタンス当たり、最大で5,000の同時ExtractおよびReplicatグループをサポートします。サポートされているレベルで、INFOSTATUSなどのGGSCIコマンドですべてのグループを完全に制御および表示できます。Oracle GoldenGateでは、環境を効果的に管理するために、ExtractおよびReplicatグループの数(合計)をデフォルト・レベルの300以下に保つことが推奨されます。

最高のパフォーマンスを得るためのOracle GoldenGate構成の詳細は、「Oracle GoldenGateのパフォーマンスのチューニング」を参照してください。

初期同期

この章の手順に従って変更同期グループおよび証跡を構成したら、初期ロードによるOracle GoldenGateのインスタンス化を参照して同期用のターゲット表を準備します。初期ロードによって、ソース表全体がコピーされ、必要に応じてデータが変換され、トランザクション・データの移動が同期状態から開始されるようにデータがターゲット表に適用されます。変更同期を最初に開始するのは、初期同期プロセス中である必要があります。変更同期によって、ロードが適用されている間、進行中のトランザクション変更が追跡されます。

プロセスとファイルの名前の選択

構成手順を開始する前に、Oracle GoldenGateのプロセスとファイルの一貫したネーミング規則を作成すると便利です。意味のある名前を選択すると、ディスプレイ、エラー・ログおよび外部監視プログラムで複数のプロセスやファイルを区別するのに役立ちます。また、環境の変更や拡張に応じて後でプロセスやファイルを追加する際の命名にも対応します。

この項では、次の点について説明します。

プロセスのネーミング規則

プロセス名またはグループ名を指定する場合、次のルールに従います。

  • 次のタイプのプロセスでは最大8文字を使用できます。アンダースコア(_)などの英数字以外の文字も含めることができます。

    • オンラインExtractグループ

    • 初期ロードExtract

    • クラシック(未調整)モードで作成されたオンラインReplicatグループ

    • 統合モードで作成されたオンラインReplicatグループ(Oracleのみ)

  • 調整および並列Replicatプロセス・グループには、最大5文字まで使用できます。アンダースコア(_)などの英数字以外の文字も含めることができます。内部的には、ADD REPLICATコマンドのMAXTHREADSオプションに基づいて作成される各スレッドのベース名に、3文字のスレッドIDが追加されます。作成される名前は、他のReplicatグループに対して重複させることはできません。たとえば、名前がfinで、MAXTHREADSが50スレッドである調整Replicatグループが作成された場合、作成されるスレッド名はfin000からfin050になります(MAP文で指定されたIDであるとします)。この場合、fin000からfin0050までの名前を他のReplicatグループは使用できません。詳細は、次のルールを参照してください。

  • グループ名には数値を含めることができますが、数字で終わる名前はお薦めできません。レポート生成時に書込みプロセスによってグループ名の末尾に数値が追加されるため、グループ名の末尾に数値を使用すると(fin1など)、レポート・ファイル名の重複やエラーの原因になります。また、Replicatを調整モードで実行している場合、数値で終わるグループ名はお薦めできません。内部的に数値のスレッドIDがグループ名に追加されるため、ベース・グループ名も数字で終わる場合、情報コマンドの出力の解析が困難になります。数字を付加した結果がワイルドカードに適合すると、スレッド名を他のReplicatグループの名前と混同する可能性があります。レポート・ファイル名の重複が起こる可能性もあります。グループ名の始めに数値を配置する方が(たとえば1_fin1finなど)、より実際的です。

  • ローカル・オペレーティング・システムのキャラクタ・セットでサポートされ、オペレーティング・システムでファイル名での使用が許可されているかぎり、プロセスの名前には任意の文字を使用できます。この理由は、グループがその関連するチェックポイント・ファイルとパラメータ・ファイルで識別されるためです。

  • 次の文字は、グループ名に使用できません。

    {\ / : * ? " < > | }
    
  • HP UX、LinuxおよびSolarisでは、コロン(:)またはアスタリスク(*)を使用してファイル名を指定できますが、推奨はされません。

  • 一般的に、Oracle GoldenGate内では、プロセス名とパラメータ・ファイル名の大/小文字は区別されません。たとえば、financeFinanceおよびFINANCEは、すべて同じであるとみなされます。ただし、Linuxでは、プロセス名(およびADDコマンドで明示的に定義される場合はそのパラメータ・ファイル名)はすべて大文字またはすべて小文字である必要があります。プロセスおよびパラメータ・ファイルに指定された名前に大文字と小文字が混在していると、プロセスの起動時にエラーが発生します。

  • 名前には、1語のみ使用してください。

  • プロセスまたはパラメータ・ファイルのフル・ネームにportという語は使用しないでください。ただし、名前の一部にportという文字列があってもかまいません。

ファイル名の選択

キャプチャされたデータは、次のOracle GoldenGateプロセス・ダウンストリームによって処理されるための格納場所である、証跡と呼ばれる一連のファイルへと格納される必要があります。基本的な構成は次のとおりです。

  • ソース・システムのローカル証跡

  • ターゲット・システムのリモート証跡

実際の証跡名には、./dirdat/trのように2文字のみが含まれます。新規ファイルが作成される際、Oracle GoldenGateによってこの名前に9桁の順序番号が付加され、./dirdat/aa000000002のようになります。証跡はOracle GoldenGateプロセスにリンクされており、トラブルシューティングの目的で識別が必要になる場合があるので、そのネーミング規則を確立しておくことをお薦めします。

Windowsシステムでは、証跡パス名のディレクトリの名前が数字で始まる場合、パラメータ・ファイル内に証跡をリストするときに、そのパスをバックスラッシュでなくスラッシュで指定する必要があります。詳細は、「Windowsシステムでのパラメータ・ファイルでのファイルシステム・パス名の指定」を参照してください

Oracle GoldenGate証跡の詳細は、証跡とはを参照してください。

チェックポイント表の作成

Replicatは、予期される停止または予期されない停止の後に処理を開始する基準となる証跡内の既知の位置を指定するチェックポイントを管理します。チェックポイントのレコードを格納するために、Replicatはターゲット・データベースのチェックポイント表を使用します。これにより、ReplicatのチェックポイントをReplicatトランザクション自体に含めることができるため、Replicatプロセスまたはデータベース・プロセスに障害が発生した場合でも、トランザクションは一度しか適用されません。不要になった行は削除されるため、チェックポイント表のサイズは小さく抑えられ、データベース・パフォーマンスには影響しません。チェックポイント表の詳細は、チェックポイントについてを参照してください。

チェックポイント表作成のオプション

チェックポイント表は任意のスキーマに配置できます。可能であれば、Oracle GoldenGate専用のものを使用してください。

Oracle GoldenGateの複数のインスタンス(複数インストール)は同じチェックポイント表を使用できます。Oracle GoldenGateは、異なるインスタンスでReplicatグループの名前が同じであっても、チェックポイントを追跡します。

必要に応じて複数のチェックポイント表を使用できます。たとえば、Replicatグループごとに異なるものを使用できます。

チェックポイント表は次の方法でインストールできます。

  • GLOBALSファイルにデフォルトのチェックポイント表を指定できます。ADD REPLICATコマンドを使用して作成された新規Replicatグループは、特別な指示がなくてもこの表を自動的に使用します。手順は、GLOBALSファイルにデフォルトのチェックポイント表を指定する手順を参照してください。

  • 任意のReplicatグループを作成する際に、ADD REPLICATコマンドで、次のように特定のチェックポイント表の指示を指定できます。

    • グループで特定のチェックポイント表を使用するには、ADD REPLICATCHECKPOINTTABLE引数を使用します。このチェックポイント表は、GLOBALSファイルのすべてのデフォルトの指定よりも優先されます。ただ1つのReplicatグループを使用する場合、このコマンドを使用して、GLOBALSファイルの作成を完全に省略できます。

    • グループでチェックポイント表の使用を省略するには、ADD REPLICATNODBCHECKPOINT引数を使用します。チェックポイント表がない場合でも、チェックポイントはReplicatによりディスク上のチェックポイント・ファイルに保持されますが、データの一貫性を失うリスクが生じます。

チェックポイント表の実装方法にかかわらず、ADD REPLICATコマンドを使用する前に、ターゲット・データベースにチェックポイント表を作成しておく必要があります。

ターゲット・データベースにチェックポイント表を追加する手順

GGSCIを通じてチェックポイント表を作成する次の手順は、かわりにchkpt_db_create.sqlスクリプト(dbはデータベース・タイプの略称)を実行することで省略できます。このスクリプトを使用することで、カスタム記憶域または他の属性を指定できます。この表の列の名前または属性は変更しないでください。

  1. Oracle GoldenGateディレクトリから、GGSCIを実行してDBLOGINコマンドを発行し、データベースにログインします。このコマンドを発行するユーザーは、CREATE TABLE権限を持っている必要があります。データベースで使用する正しい構文の詳細は、『Oracle GoldenGateリファレンス』を参照してください。

  2. GGSCIで、次のコマンドを発行してデータベースにチェックポイント表を追加します。

    ADD CHECKPOINTTABLE container owner.table
    

    説明:

    Oracleマルチテナント・コンテナ・データベースにインストールする場合、owner.tableは表の所有者と名前、containerはPDBの名前です。この表をデフォルトのチェックポイント表として使用し、GLOBALSファイルのCHECKPOINTTABLEで指定する場合、所有者および名前は省略できます。この表の名前は、データベースでオブジェクト名に対して許容される最大長を超えてはなりません。チェックポイント表の名前には、引用符、バックスラッシュ、番号記号などの特殊文字を含めることはできません。

GLOBALSファイルにデフォルトのチェックポイント表を指定する手順

この手順は、Oracle GoldenGateインスタンスにおけるすべてのチェックポイント表のグローバル名を指定します。Replicatグループの作成時に異なるチェックポイント表を指定することによって、任意のReplicatグループに対してこの名前をオーバーライドできます。

  1. GLOBALSファイルを作成します(または、既存のファイルがある場合はこれを編集します)。UNIXまたはLinuxシステムでは、ファイル名はすべて大文字とし、ファイル拡張子を付けずにOracle GoldenGateのルート・ディレクトリに配置する必要があります。ASCIIテキスト・エディタを使用して、前述のネーミング規則に従ってファイルを作成します。または、GGSCIを使用してファイルを作成すると、自動的に正しい名前と場所を使用して保存されます。GGSCIを使用する場合、次のコマンドを使用します(GLOBALSは大文字で入力します)。
    EDIT PARAMS ./GLOBALS
    
  2. 次のパラメータを入力します。
    CHECKPOINTTABLE container.owner.table
    

    説明:

    catalog.owner.tableはデフォルト・チェックポイント表の完全修飾名です。データベースがOracleマルチテナント・コンテナ・データベース(CDB)の場合はコンテナの名前を含みます。

  3. 表の名前を書き留め、GLOBALSファイルを保存して閉じます。ファイルがOracle GoldenGateのルート・ディレクトリに作成されたことを確認します。ファイル拡張子がある場合は、拡張子を削除します。

Oracle RACにおける調整Replicatへの対応

チェックポイント表の作成対象のReplicatがOracle RAC構成で実行される場合、Replicatチェックポイント表のPCTFREE属性をできるだけ高い値、可能なら90に増やすことをお薦めします。これにより、調整処理で必要になる、頻繁なチェックポイント化に対応できます。この変更は、Replicatグループを初めて開始する前に行う必要があります。調整Replicatの詳細は、「オンラインReplicatグループの作成」を参照してください。

オンラインExtractグループの作成

オンラインExtractグループを作成するには、ソース・システムでGGSCIを実行し、ADD EXTRACTコマンドを発行します。コマンド引数はすべてカンマで区切ります。構文には、次の2つの形態があります。

標準、パッシブまたはデータ・ポンプExtractグループを作成するための構文

ADD EXTRACT group
{, datasource}
{, BEGIN start_point} | {position_point}
[, PASSIVE]
[, THREADS n]
[, PARAMS pathname]
[, REPORT pathname]
[, DESC 'description']

説明:

  • groupは、Extractグループの名前です。グループ名は必須です。

  • datasourceは、抽出するデータのソースを指定する場合に必要です。次のいずれかを使用します。

    • TRANLOGでは、データソースとしてトランザクション・ログを指定します。Oracle Enterprise Editionでこのオプションを使用する場合は、ADD EXTRACTを使用する前に(かつ、DELETE EXTRACTを発行してExtractグループを削除する前に)、Extractデータベース・ユーザー(または同じ権限を持つユーザー)としてDBLOGINコマンドを発行する必要があります。

      z/OS上で稼働するDB2では、bsdsオプションを使用して、トランザクション・ログのブートストラップ・データセットのファイル名を指定します。

    • INTEGRATED TRANLOGでは、このExtractが統合キャプチャ・モードで動作して、Oracle Databaseログマイニング・サーバーから論理変更レコード(LCR)を受信することを指定します。このパラメータは、Oracle Databaseにのみ適用されます。

    • EXTTRAILSOURCE trail nameでは、ローカル証跡の相対名または完全修飾名を指定します。データ・ポンプを作成する場合に使用します。データ・ポンプは、Oracle GoldenGateの任意の抽出方法と組み合せて使用できます。

  • BEGIN start_pointでは、処理のための初期チェックポイントおよび開始ポイントを確定してオンラインExtractグループを定義します。このポイントより前に開始されたトランザクションは、破棄されます。次のいずれかを使用します。

    • NOWは、グループを作成するためにADD EXTRACTコマンドが実行された時点(統合モードのOracle Extractの場合は、REGISTER EXTRACTコマンドでグループが登録された時点から)のタイムスタンプが指定された変更の抽出を開始します。ADD EXTRACT文よりも前にOracle GoldenGateの証跡に取得されたデータを回避しない場合は、データ・ポンプExtractにNOWを使用しないでください。

      YYYY-MM-DD HH:MM[:SS[.CCCCCC ]]は、開始ポイントとして正確なタイムスタンプを指定するための書式です。レプリケーションまたはロギングが有効化された時点より後の開始ポイントを使用してください。

  • position_pointでは、特定のトランザクション・ログ・ファイル内で処理を開始する特定の位置を指定します。データベースで使用する特定の構文は、『Oracle GoldenGateリファレンス』ADD EXTRACTに関する項を参照してください。

  • PASSIVEでは、グループがパッシブExtractであることを示します。PASSIVEを使用する場合、別名Extractも使用する必要があります。このオプションは、他のADD EXTRACTオプション内に任意の順序で配置できます。

  • THREADS nは、ExtractがOracle Real Application Cluster (RAC)におけるクラシック・キャプチャ・モードで動作している場合に必要です。クラスタで使用するREDOログ・スレッドの数を指定します。

  • PARAMS pathnameは、このグループのパラメータ・ファイルをOracle GoldenGateディレクトリのdirprmサブディレクトリ以外の場所に格納する場合に必要です。完全修飾名を指定します。デフォルトの場所をお薦めします。

  • REPORT pathnameは、このグループのプロセス・レポートをOracle GoldenGateディレクトリのdirrptサブディレクトリ以外の場所に格納する場合に必要です。完全修飾名を指定します。デフォルトの場所をお薦めします。

  • DESC 'description'では、グループの説明を指定します。

別名Extractグループを作成するための構文

ADD EXTRACT group
, RMTHOST {host | IP address}
, {MGRPORT port} | {PORT port}
[, RMTNAME name]
[, DESC 'description']

説明:

  • RMTHOSTでは、このグループを別名Extractとして識別し、リモート・ホストのDNS名またはそのIPアドレスを指定します。

  • MGRPORTでは、Managerが稼働しているリモート・システムのポートを指定します。動的Collectorを使用する場合、このオプションを使用します。

  • PORTでは、静的Collectorのポートを指定します。静的Collectorを実行する場合にのみ、MGRPORTのかわりに使用します。

  • RMTNAMEでは、パッシブExtractの名前を指定します(別名Extractの名前と異なる場合)。

  • DESC 'description'では、グループの説明を指定します。

例13-1 ログベース取得のためのExtractグループの追加

この例では、financeというExtractグループを作成します。抽出は、グループの作成時点に生成されたレコードから開始します。

ADD EXTRACT finance, TRANLOG, BEGIN NOW

例13-2 データ・ポンプExtractグループの追加

この例では、financeというデータ・ポンプExtractグループを作成します。このグループは、Oracle GoldenGate証跡のc:\ggs\dirdat\ltから読取りを行います。

ADD EXTRACT finance, EXTTRAILSOURCE c:\ggs\dirdat\lt

例13-3 パッシブExtractグループの追加

この例では、financeというパッシブExtractグループを作成します。抽出は、グループの作成時点に生成されたレコードから開始します。このグループはパッシブとしてマークされるため、ターゲットの別名ExtractがこのExtractへの接続を開始します。

ADD EXTRACT finance, TRANLOG, BEGIN NOW, PASSIVE

例13-4 パッシブ・データ・ポンプExtractグループの追加

この例では、financeというデータ・ポンプExtractグループを作成します。これは、Oracle GoldenGate証跡のc:\ggs\dirdat\ltから読取りを行うパッシブ・データ・ポンプExtractです。このデータ・ポンプはパッシブとしてマークされるため、ターゲットの別名Extractがこのデータ・ポンプへの接続を開始します。

ADD EXTRACT finance, EXTTRAILSOURCE c:\ggs\dirdat\lt, PASSIVE

例13-5 別名Extractグループの追加

この例では、aliasという別名Extractグループを作成します。

ADD EXTRACT alias, RMTHOST sysA, MGRPORT 7800, RMTNAME finance

例13-6 Oracleのための統合モードでのプライマリExtractの追加

この例では、Oracleソース・データベース用に統合キャプチャ・モードでExtractを作成し、開始ポイントを、ExtractグループがREGISTER EXTRACTコマンドによってOracleデータベースに登録された時刻に設定します。統合キャプチャは、Oracleデータベースに対してのみ使用できます。

ADD EXTRACT finance INTEGRATED TRANLOG, BEGIN NOW 

証跡の作成

データを抽出したら、処理して1つ以上の証跡に格納する必要があります。証跡では、別のOracle GoldenGateプロセスによって処理するためにデータが格納されます。証跡は、必要に応じて作成およびエージングされる一連のファイルです。証跡を読み取るプロセスには、次のものがあります。

  • データ・ポンプExtract: 後続の処理のために必要に応じてローカル証跡からデータを抽出し、そのデータをターゲット・システムに転送します。

  • Replicat: 証跡を読み取って変更データをターゲット・データベースに適用します。

複数の証跡を作成し、異なる表またはアプリケーションのデータを分けたり、カスケード・トポロジなどの特定のレプリケーション・トポロジの要件に適合させることができます。TABLE文で指定した表を、Extractパラメータ・ファイルのEXTTRAILまたはRMTTRAILパラメータ文で指定した証跡にリンクします。Oracle GoldenGate証跡の詳細は、Oracle GoldenGate証跡についてを参照してください。

Oracle GoldenGate証跡の記憶域の割当て

通常の構成では、少なくともソース・システムに1つ、ターゲット・システムに1つの証跡があります。次の点を考慮に入れ、十分なディスク領域を割り当てます。

  • プライマリExtractプロセスは、ソース・データベースからトランザクション・データを取得し、ローカル証跡に書き込みます。データ・ポンプExtractは、その証跡を読み取り、データをネットワーク経由でターゲットのリモート証跡に転送します。ネットワークに障害があると、データ・ポンプは失敗しますが、プライマリExtractによるローカル証跡へのデータの処理は続けられます。累積していくデータを格納するのに十分なディスク領域がある必要があります。そうでないと、プライマリExtractが異常終了します。

  • ターゲットの場所にある証跡の場合、PURGEOLDEXTRACTSパラメータで設定された消去ルールに従ってデータの累積を処理するのに十分なディスク領域を用意します。PURGEOLDEXTRACTSを使用しても、ターゲット・データベースへの適用よりもネットワーク経由の転送の方が速いため、データはターゲットに常に累積します。

証跡アクティビティがビジネス・アプリケーションによって干渉されないようにするには、別個のディスクまたはファイル・システムを割り当てて証跡ファイルを含めます。証跡ファイルは、Oracle GoldenGateインストールのローカル・ドライブに配置することも、NASまたはSANデバイスに配置することもできます。Oracleクラスタでは、ASMまたはDBFS記憶域に配置できます。

証跡用の領域の見積り

Oracle GoldenGate証跡データの格納に必要になるディスク領域を見積もるためのガイドラインを次に示します。

  1. ネットワークが使用できない可能性のある最長の時間を見積もります。考えられる最長の停止時間に対応するのに十分なデータを格納するよう計画します。そうしないと、停止時間がディスク容量より長くなった場合にソースとターゲットのデータを再同期化する必要があります。
  2. ビジネス・アプリケーションで1時間に生成されるトランザクション・ログのボリュームを見積もります。
  3. 次の式を使用して、必要なディスク領域を計算します。

    [1時間当たりのログ・ボリューム] x [停止時間] x .4 = 証跡のディスク領域

    Oracle GoldenGateで必要なトランザクション・ログのデータは40パーセントのみのため、この式では40パーセントという乗数を使用します。

    注意:

    この式は控えめな見積りです。Oracle GoldenGateの構成後、テストを実行し、必要な領域を正確に割り出します。

証跡の追加

証跡を作成または追加する際、ディスクにファイルを物理的に作成しません。ファイルはExtractプロセスによって自動的に作成されます。証跡の名前を指定し、その証跡に書き込むExtractグループに割り当てます。

証跡を追加するには、ソース・システムのGGSCIで、次のコマンドを発行します。

ADD {RMTTRAIL | EXTTRAIL} pathname, EXTRACT group
[, MEGABYTES n]

説明:

  • RMTTRAILでは、リモート・システムの証跡を指定します。

  • EXTTRAILでは、ローカル・システムの証跡を指定します。

    • EXTTRAILは、PASSIVEモードのExtractには使用できません。

    • EXTTRAILは、データ・ポンプによって読み取られるローカル証跡を指定する場合に使用する必要があります。

  • pathnameは、2文字の名前(任意の2つの英数字)を含む証跡の相対名または完全修飾名です(c:\ggs\dirdat\rtなど)。Oracle GoldenGateでは、処理時の作成順に、各証跡ファイルにシリアル番号が追加されます。通常、証跡は、Oracle GoldenGateディレクトリのdirdatサブディレクトリに格納されます。

  • EXTRACT groupは、この証跡に書込みを行うExtractグループの名前です。1つのExtractグループのみが、証跡に書き込むことができます。

  • MEGABYTES nは、各証跡ファイルのサイズをMB単位で設定できるオプション引数です(デフォルトは100です)。

例13-7 ローカル証跡の作成

この例では、Extractグループのextに対して/ggs/dirdat/ltというローカル証跡を作成します。

ADD EXTTRAIL /ggs/dirdat/lt, EXTRACT ext

例13-8 リモート証跡の作成

この例では、Extractグループのfinanceに対して、各ファイル・サイズを約50MBとしてc:\ggs\dirdat\rtという証跡を作成します。

ADD RMTTRAIL c:\ggs\dirdat\rt, EXTRACT finance, MEGABYTES 200

オンライン抽出用のパラメータ・ファイルの作成

次の手順に従って、オンラインExtractグループのパラメータ・ファイルを作成します。パラメータ・ファイルは、別名Extractグループには必要ありません。

  1. ソース・システムのGGSCIで、次のコマンドを発行します。
    EDIT PARAMS name
    

    説明:

    nameは、ADD EXTRACTコマンドで作成したExtractグループの名前です。または、グループの作成時に代替の場所を定義した場合は、パラメータ・ファイルの完全修飾名です。

  2. 「オンライン抽出用のパラメータ・ファイルの作成」にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。一部のパラメータは、特定の構成にのみ適用されます。

    表13-1 オンライン変更抽出のパラメータ

    パラメータ 説明
    EXTRACT group
    • groupは、ADD EXTRACTコマンドで作成したExtractグループの名前です。

    Extractは、チェックポイント付きのオンライン・プロセスとして構成します。

    [SOURCEDB dsn | container | catalog]
    [, USERIDALIAS alias options |
    , USERID user, options]

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

    SOURCEDBには、ソースのデータソース名(DSN)を指定します。詳細は、参照してください。

    USERIDUSERIDALIASで、必要に応じてデータベース資格証明を指定します。

    データベース接続は、グループがデータベースの存在しない中間システム上のデータ・ポンプである場合には省略できます。この場合、列マッピングまたは変換は実行されません。

    RMTHOSTOPTIONS host,
    MGRPORT port,
    [, ENCRYPT algorithm KEYNAME key_name]

    ターゲット・システム、Managerが稼働しているポート、およびTCP/IP経由でのデータ暗号化(オプション)を指定します。IPを通じてリモート・システムにデータを送信する場合にのみ必要です(ADD RMTTRAILを使用して証跡を作成した場合)。証跡がローカル・システムに存在する場合には、必要ありません(ADD EXTTRAILを使用した場合)。

    パッシブExtractグループにも無効です。

    ENCRYPTTRAIL algorithm

    このエントリの後に指定した証跡がすべて暗号化されます。

    DECRYPTTRAIL

    (データ・ポンプの場合)入力証跡のデータを復号化します。出力証跡へ書き込む前にデータ・ポンプがデータを処理する必要がある場合にのみ使用します。

    RMTTRAIL pathname |
    EXTTRAIL pathname
    • RMTTRAILを使用して、ADD RMTTRAILコマンドで作成されたリモート証跡の相対名または完全修飾名を指定します。

    • EXTTRAILを使用して、ADD EXTTRAILコマンドで作成された(データ・ポンプまたはVAMソートExtractによって読み取られる)ローカル証跡の相対名または完全修飾名を指定します。

    証跡を指定します。複数の証跡を指定する場合、適切なTABLE文を各指定の後に続けます。

    EXTTRAILは、パッシブExtractグループには無効です。

    証跡またはファイルのバージョンが異なる場合、RMTTRAILまたはEXTTRAILFORMATオプションを使用します。『Oracle GoldenGateリファレンス』EXTTRAILに関する項を参照してください

    LOGALLSUPCOLS

    Oracleターゲットに対して統合Replicatを使用する場合、または競合検出および解決(CDR)のサポートを使用する場合に使用します。スケジューリング列のビフォア・イメージを証跡に書き込みます。(スケジューリング列は、主キー、一意索引および外部キー列です。)『Oracle GoldenGateリファレンス』LOGALLSUPCOLSに関する項を参照してください。

    SOURCECATALOG

    Oracleマルチテナント・コンテナ・データベース内のデフォルト・コンテナをSEQUENCE文に指定します。それらのデータベースに対して3つの部分からなる名前が必要とされる場合に、2つの部分からなる名前(schema.object)を使用できるようにします。このパラメータのインスタンスを複数使用すると、TABLEまたはSEQUENCEのパラメータの異なる組合せに対して、異なるデフォルト・コンテナまたはカタログを指定できます。

    SEQUENCE [container.]owner.sequence;

    取得するOracleシーケンスの完全修飾名を指定します。データベースがマルチテナント・コンテナ・データベース(CDB)の場合は、コンテナ名を含めます。

    TABLE [container. | catalog.]owner.object;

    オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。データベースがOracleマルチテナント・コンテナ・データベースの場合は、SOURCECATALOGが使用されていないかぎり、オブジェクト名にコンテナまたはカタログの名前を含める必要があります。パラメータ・ファイル内のオブジェクト名指定のガイドラインは、「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。

    CATALOGEXCLUDE

    SCHEMAEXCLUDE

    TABLEEXCLUDE

    EXCLUDEWILDCARDOBJECTSONLY

    関連付けられたTABLE文のワイルドカード表記から特定のオブジェクトを除外するために、互いに組み合せて使用できるパラメータ。

  3. 『Oracle GoldenGateリファレンス』「Oracle GoldenGateパラメータ」にリストされているExtractの適切なオプション・パラメータを入力します。
  4. パラメータ・ファイルを保存して閉じます。

オンラインReplicatグループの作成

Replicatグループを作成する前に、クラシック・モード(Oracle環境では非統合モードとも呼ばれます)、調整モードおよび統合モードのうち、どのReplicatモードが使用環境に適切かを評価する必要があります。

内容は次のとおりです。

クラシックReplicatモードについて

クラシック・モードでは、Replicatは標準SQLを使用してデータをターゲット表に適用する単一スレッド・プロセスです。このモードでは、Replicatは次のように動作します。

  • Oracle GoldenGate証跡を読み取ります。

  • データのフィルタリング、マッピング、および変換を実行します。

  • ソース・データベースのDMLまたはDDLトランザクションを表すSQL文を作成します(コミット順)。

  • 指定のターゲット・データベース(たとえばODBCまたはネイティブのデータベース・インタフェース)に対してサポートされているSQLインタフェースを介して、SQLをターゲットに適用します。

図13-1 クラシックReplicat

図13-1の説明が続いています。
「図13-1 クラシックReplicat」の説明

図13-1に示すように、クラシックReplicatを使用してトランザクションをパラレルに適用できますが、複数のReplicatプロセスにわたってワークロードをパーティション化する必要があります。各Replicatに対してパラメータ・ファイルを作成する必要があります。

任意のオブジェクトに対してクラシック・モードを使用すべきか判断するためには、1つのReplicatグループのオブジェクトが他のいずれかのReplicatグループのオブジェクトに対して、トランザクショナルまたはそれ以外の依存関係を持つことがあるかどうかを判断する必要があります。すべてのワークロードが、複数のReplicatグループにパーティション化されても元のトランザクション原子性を維持できるというわけではありません。たとえば、ワークロードが主キーを定期的に更新する表は、この方法で簡単にパーティション化することはできません。このモードでは、DDLレプリケーション(データベースに対してサポートされている場合)も、アクションが特定のレコードに基づいているような一部のSQLEXECまたはEVENTACTIONS機能の使用も、有効ではありません。

表に外部キーへの依存関係や、主キーに対する更新がない場合は、クラシック・モードが適切である可能性があります。クラシック・モードには、調整モードより少ないオーバーヘッドしか必要ありません。

パラレルReplicatグループの使用方法の詳細は、Oracle GoldenGateのパフォーマンスのチューニングを参照してください。

調整Replicatモードについて

調整モードでは、Replicatは次のように動作します。

  • Oracle GoldenGate証跡を読み取ります。

  • データのフィルタリング、マッピング、および変換を実行します。

  • コミットされた順序で各スレッドに送信された操作を処理します。

  • 指定のターゲット・データベース(たとえばODBCまたはネイティブのデータベース・インタフェース)に対してサポートされているSQLインタフェースを介して、SQLをターゲットに適用します。

クラシック・モードと調整モードの相違点は、調整モードではReplicatがマルチスレッドである点です。単一のReplicatインスタンス内で複数のスレッドが独立に証跡を読み取り、パラレルにトランザクションを適用します。各スレッドは、フィルタリング、マッピング、変換、SQL作成およびエラー処理を、割り当てられたワークロードについて処理します。coordinatorスレッドは、トランザクションをスレッド間で調整して、スレッド間の依存関係を処理します。

合計ソース・トランザクションの整合性が維持されないように、ソース・トランザクションはCRプロセスに分割できます。 CRプロセスによって処理されるトランザクションの一部はコミットされた順序で実行されますが、すべてのCRプロセスに渡るトランザクション全体はコミットされた順序では実行されません。 

調整Replicatでは、ワークロードのユーザー定義のパーティション化が可能で、大量のトランザクションを同時に適用できます。また、DDLやTHREADRANGEパーティション化を使用した主キー更新などの調整の必要なトランザクションの実行が自動的に調整されます。そのようなトランザクションは、ターゲットでは1つのトランザクションとして完全に同期化されて実行されます。まず、それより前のトランザクションがすべて適用されるのを待機し、このバリア・トランザクションより後のトランザクションはすべて、このバリア・トランザクションが適用されるまで待機します。

1つの調整Replicatに必要なパラメータ・ファイルは、スレッドの数に関係なく1つのみです。MAP文でTHREADまたはTHREADRANGEオプションを使用して、それらのオブジェクトのトランザクションをどのスレッドが処理するかを指定し、Replicatグループを作成するときに、スレッド数の最大値を指定します。

バリア・トランザクションについて

バリア・トランザクションは、調整Replicat構成で自動的に管理されます。バリア・トランザクションは、スレッド間での調整を必要とするトランザクションです。たとえば、DDL文、主キーに対する更新を含むトランザクションおよび一部のEVENTACTIONSアクションなどです。

オプションで、MAP文でCOORDINATEDキーワードを使用することで、他のトランザクションを強制的にバリア・トランザクションのように処理できます。この使用例の1つは、SQLEXECを、強制的にシリアル実行に類似した方法で実行する場合です。これは、ターゲットの状態がすべてのトランザクションにわたって整合的でないと結果が一意にならない可能性がある場合に有益です。

注意:

マップされた表がTHNREADRANGEに基づいてパーティション化されている場合、調整Replicatは非バリア・トランザクションに対して依存性計算を行いません。指定されたTHREADRANGE列に依存して、ハッシュ値が計算されます。これによりハッシュ値に基づいて受信データがパーティション化され、このハッシュ値に一致するすべてのレコードが同じスレッドに送信されます。
バリア・トランザクションの処理方式

バリア・トランザクションの開始時点で、すべてのスレッドが収束し、待機します。他のスレッドが開始位置に達するまで、バリア・トランザクションは一時停止されます。いずれかのスレッドがバリア・トランザクションの一部をすでに処理中であった場合、それらのスレッドはロールバックを実行します。グループ化トランザクション(BATCHSQLまたはGROUPTRANSOPSパラメータによって制御されているものなど)も、バリア・トランザクションの開始位置に到達するまでロールバックされ、再適用されます。

バリア・トランザクションの後も、すべてのスレッドが収束し、次のトランザクションの開始を待機します。バリア・トランザクションの前と後の2つの同期ポイントにより、メタデータ操作とEVENTACTIONSアクションがすべて、データ操作に関連する適切な順序で行われることが保証されます。

バリア・トランザクションの開始時点でスレッドが同期すると、バリア・トランザクションは、MAP文で指定されたすべてのスレッドのうちで最も低いスレッドIDを持つスレッドによってシリアルに処理され、複数スレッドにわたるパラレル処理が再開されます。Replicatパラメータ・ファイルでUSEDEDICATEDCOORDINATIONTHREADパラメータを指定することによって、バリア・トランザクションが特定のスレッド(常にスレッド0)を介して処理されるように強制することができます。

グローバル水位標について

調整Replicatが正常に停止すると、すべてのスレッドが、グローバル水位標と呼ばれる証跡内の同じトランザクション境界で停止することが保証されます。これは、その位置の前のすべてのレコードがそれぞれのスレッドすべてによりコミットまたは無視される、同期ポイントとして定義されます。正常に停止しない場合は、SYNCHRONIZE REPLICATコマンドを使用すると、すべてのスレッドを、最後のチェックポイントを作成したスレッドの位置に戻すことができます。調整Replicatグループのリカバリの詳細は、異常停止後のスレッドの同期を参照してください。

注意:

調整Replicatは、オンライン・プロセスでしかありません。初期ロードを実行するためには使用しないでください。

統合Replicatモードについて

統合モードでは、Replicatプロセスは、Oracle Database内で使用可能な適用処理機能を利用します。このモードでは、Replicatは次のように動作します。

  • Oracle GoldenGate証跡を読み取ります。

  • データのフィルタリング、マッピング、および変換を実行します。

  • ソース・データベースDMLトランザクションを表す論理変更レコード(LCR)を構築する(コミットされた順)。DDLはReplicatによって直接適用されます。

  • 軽量ストリーミング・インタフェースによって、データベース・インバウンド・サーバーと呼ばれるターゲット・データベースのバックグラウンド・プロセスにアタッチする。

  • データがターゲット・データベースに適用されるインバウンド・サーバーにLCRを転送します。

次の図は、統合モードでのReplicatの構成を示しています。

単一のReplicat構成内で、適用サーバーと呼ばれるインバウンド・サーバーの複数の子プロセスがトランザクションをパラレルに適用し、元のトランザクションのアトミック性を保持します。この並列度は、Replicatプロセスの構成時、または必要に応じて動的に、ターゲット・システムのサポートに応じて増加できます。次の図は、2つの並列適用サーバーで構成された統合Replicatを示しています。

統合Replicatはトランザクションを非同期に適用します。相互依存関係のないトランザクションは、順不同でも安全に実行およびコミットできるため、高スループットを達成します。依存関係のあるトランザクションは、ソース上と同じ順序で適用されることを保証されます。

インバウンド・サーバーのリーダー・プロセスは、ターゲット・データベースで定義される制約(主キー、一意キー、外部キー)に基づいて、ワークロードのトランザクション間の相互依存性を計算します。バリア・トランザクションおよびDDL操作も自動的に管理されます。コーディネータ・プロセスは、複数のトランザクションを調整し、適用サーバー間の順序を管理します。

インバウンド・サーバーが構成済機能または列タイプをサポートしていない場合、Replicatはインバウンド・サーバーから切断して、インバウンド・サーバーがキューのトランザクションを完了するのを待機し、OCIを使用して直接適用モードでトランザクションをデータベースに適用します。Replicatは、直接トランザクションの適用後に統合モードで処理を再開します。

次の機能は、Replicatによって直接モードで適用されます。

  • DDL操作

  • 順序操作

  • TABLE内のSQLEXECパラメータまたはMAPパラメータ

  • EVENTACTIONS処理

  • UDTに関する注意: ExtractがUSENATIVEOBJSUPPORTを使用してUDTを取得すると、統合Replicatがインバウンド・サーバーで適用し、そうでない場合は、Replicatによって直接処理されます。

トランザクションは、直接適用モードでシリアルに適用されるため、このような操作を多用すると、統合Replicatモードのパフォーマンスが低下する場合があります。統合Replicatは、適用処理のほとんどが統合モードで実行可能な場合に、最高のパフォーマンスを発揮します(『Oracle DatabaseのためのOracle GoldenGateの使用』インスタンス化後の処理の監視および制御に関する項を参照)。

注意:

ユーザー・イグジットは統合モードで実行されます。ユーザー・イグジットにより予期しない結果が発生する場合がありますが、終了コードは、レプリケーション・ストリームのデータによって異なります。

統合Replicatモード

Replicatは、リリース11.2.0.4以降のOracleデータベースで利用できる統合モードでは、ターゲットOracleデータベース内で利用できる適用処理機能を活用します。このモードでは、Replicatは、証跡を読み取り、ソースのDMLまたはDDLトランザクションを表す論理変更レコードを作成し、それらのレコードをOracleターゲット・データベースのインバウンド・サーバーに送信します。インバウンド・サーバーは、データをターゲット・データベースに適用します。

注意:

統合Replicatは、オンライン・プロセスでしかありません。初期ロードを実行するためには使用しないでください。

非統合Replicatについて

非統合モードでは、Replicatプロセスは標準のSQLを使用してデータを直接ターゲット・データベースに適用します。このモードでは、Replicatは次のように動作します。

  • Oracle GoldenGate証跡を読み取ります。

  • データのフィルタリング、マッピング、および変換を実行します。

  • ソース・データベースのDMLまたはDDLトランザクションを表すSQL文を作成します(コミット順)。

  • Oracle Call Interface (OCI)でSQLをターゲットに適用する。

次の図は、非統合モードでのReplicatの構成を示しています。

非統合Replicatは、次の場合に使用します。

  • ターゲットOracle DatabaseのバージョンがOracle 11.2.0.4より前の場合。

  • 統合Replicatモードでサポートされない機能を多用する場合(「統合Replicatモードについて」を参照)。

条件付きReplicat構成を使用することで、トランザクションを非統合Replicatと並行して適用できます。

並列Replicatについて

並列Replicatは、パフォーマンスを向上させるために並列でトランザクションを適用する新しいReplicatの種類です。

統合Replicatと同様に、トランザクション間の依存関係が考慮されます。データベースの外部で依存性の計算、マッピングの並列処理および適用が実行されるため、負荷が別のサーバーに移されます。このプロセスでトランザクションの整合性が維持されます。さらに、並列Replicatは、大きなトランザクションをチャンクに分割してパラレルに適用することで、大きなトランザクションのパラレル適用をサポートします。

並列Replicatは非統合オプションを使用するすべてのデータベースをサポートします。並列Replicatは完全なメタデータを持つ証跡からのデータ・レプリケーションのみをサポートし、従来の証跡形式を必要とします。

並列Replicatのコンポーネントは次のとおりです。
  • マッパーはパラレルに動作し、証跡の読取り、証跡レコードのマッピング、マップされたレコードの統合Replicat LCR形式への変換、および後続の処理のためのマージャへのLCRの送信を実行します。1つのマッパーが1つのセットのトランザクションをマップしている間に、次のマッパーが次のセットのトランザクションをマップします。証跡情報は分割されますが、証跡情報が正しく順序付けされるため、証跡ファイルはそのままの状態になります。

  • マスター・プロセスにはコレータとスケジューラの2つのスレッドがあります。コレータはマスターからマップされたトランザクションを受け取り、依存関係の計算のために証跡の順序に戻します。スケジューラがトランザクション間の依存関係を計算し、トランザクションを独立したバッチにグループ化し、ターゲット・データベースに適用するためにバッチをアプライアに送信します。

  • アプライアは配列実行のためにバッチ内のレコードを並べ替えます。さらにバッチをターゲット・データベースに適用し、エラー処理を実行します。また、適用したトランザクションをチェックポイント表で追跡します。

次の表に、それぞれのReplicatでサポートされる機能を示します。

機能 Classic Replicat Coordinated Replicat Integrated Replicat 並列Replicat

バッチ処理

あり

あり

あり

あり

バリア・トランザクション

なし

あり

あり

あり

依存関係の計算

なし

なし

あり

あり

自動並列化

なし

なし

あり

あり

DMLハンドラ

なし

なし

あり

あり脚注1

プロシージャ・レプリケーション

なし

なし

あり

あり脚注2

自動CDR

なし

なし

あり

あり脚注3

依存関係を認識したトランザクション分割

なし

なし

なし

あり

RACノード間の処理

なし

あり

なし

あり

ALLOWDUPTARGETMAP

「ALLOWDUPTARGETMAP | NOALLOWDUPTARGETMAP」を参照してください。

あり

あり

なし脚注4

なし脚注5

脚注1 統合モード

脚注2 統合並列Replicat(iPR)の場合に使用

脚注3 iPRのみで使用

脚注4 Oracle Database

脚注5 Oracle DatabaseとiPR

プロシージャ・レプリケーションについて

Oracle GoldenGateのプロシージャ・レプリケーションを使用すると、Oracle Databaseが提供するPL/SQLプロシージャをレプリケートして、送信と適用を回避したり、このような操作で通常は生成される大量のレコードを回避できます。プロシージャ・レプリケーションにより、ユーザーとセッションの動作、およびディクショナリのオブジェクトの入替えを制御するディクショナリの変更が実装されます。

プロシージャ・レプリケーションはCREATEALTERおよびDROP文(DDL)のレプリケーションとは関係がなく、正確には次のようなプロシージャ・コールのレプリケーションです。

CALL procedure_name(arg1, arg2, ...);

次とは異なります。

exec procedure_name(arg1, arg2, ...)

プロシージャ・レプリケーションを有効にすると、1つのデータベースにおけるOracle Database提供パッケージのプロシージャ・コールが、1つ以上の他のデータベースにレプリケートされ、これらのデータベースで実行されます。たとえば、DBMS_REDEFINITIONパッケージのサブプログラムへのコールで、表のオンライン再定義を実行できます。いくつかのデータベースで表がレプリケートされているときに、各データベースの表に同じオンライン再定義を実行する必要がある場合、1つのデータベースでDBMS_REDEFINITIONパッケージのサブプログラムへのコールを実行すると、Oracle GoldenGateでこれらのコールを他のデータベースにレプリケートできます。

プロシージャ・レプリケーションをサポートするには、この最適化のために有効になっているプロシージャを識別できるようにOracle Databaseが構成されている必要があります。

プロシージャ・レプリケーションを使用するには、次の前提条件を満たす必要があります。

  • Oracle GoldenGate 12.3とともに統合ExtractおよびReplicatが使用されている。

  • システムが提供するパッケージがDMLおよびDDLとの組合せのみで動作する。

パラメータ変更との関係で見たReplicat処理の理解

Replicat構成におけるオブジェクト指定の変更は、すでに適用されたトランザクションではなく、未適用のものにのみ影響が及びます。これは調整Replicatや統合Replicatを使用する場合の重要な考慮事項です。

クラシック・モードのReplicatでは、トランザクションがシリアルに適用されるため、適用済トランザクションと未適用のトランザクションの境界は明瞭です。しかし調整Replicatや統合Replicatでは、トランザクションが非同期でパラレルに適用されるため、証跡内に、適用済トランザクションと未適用のトランザクションを分ける単一のポイントが存在しません。

調整モードや統合モードには、最低水位標(それを下回るトランザクションはすべて適用されます)と、最高水位標(それを上回るトランザクションは適用されません)があります。それらの境界の間に、個々のスレッドの進捗に応じて、適用されている可能性もされていない可能性もあるトランザクションが存在します。その結果、Replicatが強制される場合、Replicatの構成におけるオブジェクト指定の変更が、Replicatの再開後、ターゲット上に不均等に反映される場合があります。これが適用されるパラメータ変更の例は、MAPマッピング、FILTER句およびEXCLUDEのパラメータに対する変更です。

Replicatの構成は、Replicatが異常終了または強制終了された後には変更しないでください。Replicatは、起動の後、最後のチェックポイントにリカバリできるようにしておきます。調整Replicatの場合は、調整Replicat構成の管理の管理手順に従うことができます。リカバリが完了するとSTOP REPLICATコマンドでReplicatを正常に停止できるため、その後でオブジェクト指定を変更できます。

Replicatグループの作成

オンラインReplicatグループを作成するには、ターゲット・システムでGGSCIを実行し、ADD REPLICATコマンドを発行します。コマンド引数はすべてカンマで区切ります。

ADD REPLICAT group, EXTTRAIL path
[, {INTEGRATED | COORDINATED [MAXTHREADS number]}]
[, BEGIN start_point | , EXTSEQNO seqno, EXTRBA rba]
[, CHECKPOINTTABLE owner.table]
[, NODBCHECKPOINT]
[, PARAMS path]
[, REPORT path]

説明:

  • groupは、Replicatグループの名前です。グループ名は必須です。Oracle GoldenGateのネーミング規則の詳細は、「プロセスのネーミング規則」を参照してください。

  • EXTTRAIL pathは、ADD RMTTRAILコマンドで定義した証跡の相対名または完全修飾名です。

  • INTEGRATEDは、このReplicatグループが統合モードで動作することを示しています。このモードは、Oracleデータベースにのみ有効です。

  • COORDINATEDは、このReplicatグループが調整モードで動作することを示しています。MAXTHREADSは、このグループで許容されるスレッドの最大数を指定します。有効な値は1から500です。MAXTHREADSはオプションです。MAXTHREADSがない場合のデフォルトのスレッド数は25です。

    注意:

    各Replicatスレッドは、MAXGROUPSパラメータのコンテキストでは1つのReplicatグループとみなされます。MAXGROUPSでは、Oracle GoldenGateのインスタンスで許容されるプロセス・グループの最大数が制御されます。MAXTHREADSにOracle GoldenGateインスタンス内の他のプロセス・グループの数を加えた値は、MAXGROUPSで設定された値(デフォルトは1000)を超えることはできません。

  • BEGIN start_pointでは、処理のための初期チェックポイントおよび開始ポイントを確定してオンラインReplicatグループを定義します。次のいずれかを使用します。

    • NOWでは、グループを作成するためにADD REPLICATコマンドが実行された時点のタイムスタンプが指定された変更からレプリケートを開始します。

    • YYYY-MM-DD HH:MM[:SS[.CCCCCC]]は、開始ポイントの正確なタイムスタンプを指定する形式です。

  • EXTSEQNO seqno, EXTRBA rbaでは、データの読取りを開始する証跡内のファイルの順序番号と、そのファイル内の相対バイト・アドレスを指定します。このオプションを使用しない場合、処理はデフォルトで証跡の最初から開始されます。順序番号には数値を指定しますが、埋込み用の0(ゼロ)は使用しません。たとえば、トレイル・ファイルがc:\ggs\dirdat\aa000000026の場合は、EXTSEQNO 26と指定します。このオプションを使用する前に、Oracleサポートに連絡してください。

  • CHECKPOINTTABLE owner.tableでは、GLOBALSファイルで指定されたデフォルト以外のチェックポイント表の所有者および名前を指定します。この引数を使用するには、ADD CHECKPOINTTABLEコマンドを使用してデータベースにチェックポイント表を追加する必要があります(「チェックポイント表の作成」を参照)。

  • NODBCHECKPOINTでは、このReplicatグループでチェックポイント表を使用しないことを指定します。

  • PARAMS pathは、このグループのパラメータ・ファイルをOracle GoldenGateディレクトリのdirprmサブディレクトリ以外の場所に格納する場合に必要です。完全修飾名を指定します。デフォルトの場所をお薦めします。

  • REPORT pathは、このグループのプロセス・レポートをOracle GoldenGateディレクトリのdirrptサブディレクトリ以外の場所に格納する場合に必要です。完全修飾名を指定します。デフォルトの場所をお薦めします。

例13-9 オンラインReplicatグループの作成

この例では、financeという名前のオンラインReplicatグループを作成し、c:\ggs\dirdat\rtという証跡を指定します。このパラメータ・ファイルは、代替場所である\ggs\paramsに格納され、レポート・ファイルはデフォルトの場所に格納されます。

ADD REPLICAT finance, EXTTRAIL c:\ggs\dirdat\rt, PARAMS \ggs\params

オンライン・レプリケーション用のパラメータ・ファイルの作成

次の手順に従って、オンラインReplicatグループのパラメータ・ファイルを作成します。

  1. ターゲット・システムのGGSCIで、次のコマンドを発行します。

    EDIT PARAMS name
    

    説明:

    nameは、ADD REPLICATコマンドで作成したReplicatグループの名前です。または、グループの作成時に代替の場所を定義した場合は、パラメータ・ファイルの完全修飾名です。

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

表13-2 オンライン変更レプリケーションのパラメータ

パラメータ 説明
REPLICAT group
  • groupは、ADD REPLICATコマンドで作成したReplicatグループの名前です。

Replicatは、チェックポイント付きのオンライン・プロセスとして構成します。

{SOURCEDEFS path} |
ASSUMETARGETDEFS
  • SOURCEDEFSは、ソース表とターゲット表に異なる定義が含まれる場合に使用します。DEFGENによって生成されたソースのデータ定義ファイルを指定します。詳細は、メタデータへのレプリケートされたデータの関連付け,を参照してください。

  • ASSUMETARGETDEFSは、ソース表とターゲット表に同じ定義が含まれる場合に使用します。

データ定義の解釈方法を指定します。

マルチバイト・キャラクタ・セットを使用するOracle Databaseでは、ソースのセマンティクス設定がバイトでターゲットの設定が文字の場合、(DEFGENで生成された定義ファイルとともに)SOURCEDEFSを使用する必要があります。これは、ソースとターゲットのデータ定義が同一である場合でも必要です。詳細は、メタデータへのレプリケートされたデータの関連付け,を参照してください。

[DEFERAPPLYINTERVAL n unit]
  • nは、トランザクション適用前の遅延時間を示す数値です。最小値は、EOFDELAYパラメータによって設定されます。最大値は7日です。

  • unitは次のように指定できます。

    S | SEC | SECS | SECOND | SECONDS | MIN | MINS | MINUTE | MINUTES | HOUR | HOURS | DAY | DAYS

オプションです。Replicatがターゲット・システムにトランザクションを適用するまでに待機する時間を指定します。

[TARGETDB dsn | container | catalog]
[, USERIDALIAS alias options |
, USERID user, options]

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

TARGETDBにはターゲットのデータソース名(DSN)を指定します。詳細は、『Oracle GoldenGateリファレンス』TARGETDBに関する項を参照してください。

USERIDUSERIDALIASで、必要に応じてデータベース資格証明を指定します。

HANDLECOLLISIONS

コリジョン処理の指定。開始しているオンライン処理と同時に初期ロードを実行しており、ロード中にソース・データベースがアクティブな状態にとどまる場合にのみ使用します。HANDLECOLLISIONSは、進行中のレプリケート済トランザクション変更を使用して、コピーの結果を解決します。このパラメータは、行がすでに存在する場合の挿入操作や、行が存在しない場合の更新操作および削除操作を解決します。パラメータ・ファイル内のすべてのMAP文に対してグローバルに使用することも、MAP文内で使用することも、その両方で使用することもできます。

SOURCECATALOG

ソースOracleマルチテナント・コンテナ・データベースのデフォルト・コンテナを指定します。それらのデータベースに対して3つの部分からなる名前が必要とされる場合に、2つの部分からなる名前(schema.object)を使用できるようにします。このパラメータのインスタンスを複数使用すると、MAPのパラメータの異なる組合せに対して、異なるデフォルト・コンテナまたはカタログを指定できます。

MAP [container. | catalog.]owner.object,
TARGET owner.object[, DEF template]
[THREAD (thread_ID)]
[THREADRANGE (thread_range[, column_list])]
[COORDINATED]
;

単一または複数のソース・オブジェクトと、単一または複数のターゲット・オブジェクトの関係を指定します。MAPにはソース・オブジェクトを指定し、TARGETにはターゲット・オブジェクトを指定します。

ソース・オブジェクトに対して、オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。Oracleマルチテナント・コンテナ・データベースの場合は、SOURCECATALOGが使用されていないかぎり、ソース・オブジェクト名にコンテナまたはカタログの名前を含める必要があります。

ターゲット・オブジェクトに対しては、データベースのタイプに関係なく、名前のowner.objectコンポーネントだけを指定します。Replicatは、1つのOracleコンテナにのみ接続できます。データを適用する各コンテナまたはカタログごとに、別々のReplicatプロセスを使用してください。

パラメータ・ファイル内のオブジェクト名指定のガイドラインは、Oracle GoldenGateの入力におけるオブジェクト名の指定を参照してください。

調整モードでは、THREADTHREADRANGEおよびCOORDINATEDの各オプションがReplicatに対して有効です。それにより、1つ以上の特定のReplicatスレッドにワークロードをパーティション化できるようになります。構文と使用方法は、『Oracle GoldenGateリファレンス』を参照してください。

DEFオプションは、定義テンプレートを指定します。データ定義の詳細は、「メタデータへのレプリケートされたデータの関連付け」を参照してください。

CATALOGEXCLUDE

SCHEMAEXCLUDE

MAPEXCLUDE

EXCLUDEWILDCARDOBJECTSONLY

関連付けられたMAP文のワイルドカード表記から特定のソース・オブジェクトを除外するために、互いに組み合せて使用できるパラメータ。

  1. 『Oracle GoldenGateリファレンス』Replicatパラメータの概要に関する項にリストされているReplicatの適切なオプション・パラメータを入力します。
  2. ファイルを保存して閉じます。

注意:

Oracleに対して統合Replicatを使用する場合は、処理開始後のReplicatへの構成変更に関する重要情報を、「パラメータ変更との関係で見たReplicat処理の理解」で確認してください。