9 アクティブ/アクティブ型高可用性のためのOracle GoldenGateの構成
内容は次のとおりです。
アクティブ/アクティブ構成の概要
Oracle GoldenGateでは、アクティブ/アクティブ型の双方向構成がサポートされます。この構成では、同一のデータセットが含まれる2つのシステムが存在し、アプリケーション・ユーザーはどちらのシステムでもそれらのデータを変更できます。Oracle GoldenGateは、両方のデータセットを最新状態に維持するため、トランザクション・データ変更を一方のデータベースから他方のデータベースにレプリケートします。
双方向構成では、各システムにアクティブなOracle GoldenGateプロセスの完全なセットがあります。Extractプロセスによって一方のシステムで取得されたデータは、他方のシステムに伝播され、ローカルReplicatプロセスによって適用されます。
この構成では、負荷分散がサポートされます。この機能は、ビジネス・アプリケーションが任意の2つのピアで同一である場合に、障害耐久力を確保するために使用できます。双方向同期は、Oracle GoldenGateによってサポートされるすべてのデータベース・タイプでサポートされます。
Oracle GoldenGateでは、次のデータベースでアクティブ/アクティブ構成がサポートされます。
-
DB2(z/OSおよびLUW上)およびIBM i
-
MySQL
-
Oracle
-
SQL Server
Oracle GoldenGateでは、Oracleアクティブ/アクティブ構成でDDLレプリケーションがサポートされます。DDLサポートは、Oracle DatabaseおよびMySQL (like-to-like構成)データベースで使用できます。
アクティブ/アクティブ構成の考慮事項
アクティブ/アクティブ構成では、次の点を考慮する必要があります。また、使用中のデータベース・タイプに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントを参照し、双方向構成をサポートする上で他になんらかの制限や要件がないか確認してください。
TRUNCATES
TRUNCATES
の双方向レプリケーションはサポートされませんが、データの双方向へのレプリケート中に、これらの操作を一方向にレプリケートするように構成できます。アクティブ/アクティブ構成でTRUNCATES
をレプリケートするには(そのデータベースでOracle GoldenGateによってサポートされる場合)、TRUNCATES
が、ただ1つのデータベースから取得され、毎回その同じデータベースからのみ取得される必要があります。
環境は次のように構成します。
-
すべてのデータベース・ロールを構成して、この目的のために指定したデータベース以外のどのデータベースからも
TRUNCATE
を実行できないようにします。 -
TRUNCATE
が許可されるシステムで、GETTRUNCATES
パラメータを含めるようにExtractおよびReplicatのパラメータ・ファイルを構成します。 -
他方のシステムで、
IGNORETRUNCATES
パラメータを含めるようにExtractおよびReplicatのパラメータ・ファイルを構成します。このシステムでは、Oracle GoldenGate構成に含まれるアプリケーションによってTRUNCATES
を実行しないでください。
親トピック: アクティブ/アクティブ構成の考慮事項
アプリケーション設計
アクティブ/アクティブ型のレプリケーションを使用する場合は、タイムゾーンを両方のシステムで同じにする必要があるため、そのタイムスタンプベースの競合解決および検出を動作できます。
アクティブ/アクティブ型のレプリケーションは、市販のパッケージ・ビジネス・アプリケーションでサポートされていない場合、それらのアプリケーションで使用することは推奨されません。これらのアプリケーションで障害となるのは次の点です。
-
パッケージ・アプリケーションには、Oracle GoldenGateでサポートされないオブジェクトおよびデータ型が含まれる可能性があります。
-
パッケージ・アプリケーションでは、ユーザーが制御できない自動DML操作が実行される可能性がありますが、その操作がOracle GoldenGateによってレプリケートされると、Replicatによる適用時に競合が発生します。
-
通常、ユーザーは、アクティブ/アクティブ型のレプリケーションに必要とされる変更を行うためのデータ構造を制御できません。
親トピック: アクティブ/アクティブ構成の考慮事項
キー
競合を正確に検出するためには、すべてのレコードは一意の非NULL識別子である必要があります。可能であれば、主キーを作成してください。不可能な場合は、一意キーを使用するか、MAP
パラメータおよびTABLE
パラメータのKEYCOLS
オプションを使用して代替キーを作成します。一意の識別子がないと、Oracle GoldenGateでは、WHERE
句で有効なすべての列が使用されますが、表に大量の列が含まれる場合、これによってパフォーマンスが低下します。
データ整合性を保持してエラーを防止するため、特定の表で使用するキーには次のことが求められます。
-
その特定の表が存在するすべてのデータベースで同じ列が含まれる必要があります。
-
データベース間の対応する行の各セットで同じ値が含まれる必要があります。
親トピック: アクティブ/アクティブ構成の考慮事項
トリガーおよびカスケード削除
トリガーおよびON DELETE CASCADE
制約では、Oracle GoldenGateによってレプリケート可能なDML操作が生成されます。ローカルDMLがこれらの操作でレプリケートされたDMLと競合しないようにするには、次の操作を実行します。
-
Replicatによって適用されるDML操作を無視するようにトリガーを変更します。ターゲットがOracleデータベースの場合、統合モードのReplicatでは、追加構成なしでトリガーを処理します。非統合Replicatには、Oracle用のパラメータ・オプションが用意されています。『Oracle DatabaseのためのOracle GoldenGateの使用』のターゲット表でのトリガーと参照カスケード制約の無効化に関する項を参照してください。
-
ON DELETE CASCADE
制約を無効化し、親表に対するトリガーを使用して子表に対する必要な削除を実行します。このトリガーは、親表で削除操作が実行される前に子表が削除されるように、BEFORE
トリガーとして作成してください。これによって、カスケード削除の論理的な順序は逆になりますが、操作を正しい順序でレプリケートし、表が見つからないというターゲットのエラーを防止するために必要です。注意:
MySQLターゲットの場合、カスケード削除問合せを実行すると、親操作の子が削除されます。
注意:
Oracle Databaseターゲットの場合、Replicatが統合モードであると、制約は自動的に特別な構成なしで処理されます。
親トピック: アクティブ/アクティブ構成の考慮事項
データベース生成による値
双方向構成では、データベース生成による順序値(Oracle順序など)をレプリケートしないでください。値の範囲は、重複しないように各システムで異なっている必要があります。たとえば、2つのデータベースが存在する環境では、一方のサーバーで偶数値を生成し、他方で奇数値を生成します。n個のサーバーが存在する環境では、各キーを異なる値で開始し、環境内のサーバーの数を単位として値を増分します。この方法は、すべてのタイプのアプリケーションまたはデータベースに使用できるわけではありません。アプリケーションが対応している場合、値に位置識別子を追加して強制的に一意性を確保できます。
親トピック: アクティブ/アクティブ構成の考慮事項
データベース構成
データベースの1つを、信頼できるソースとして指定する必要があります。これは、初期同期フェーズや必要な後続のすべての再同期時に他のデータベースの導出元になるプライマリ・データベースおよびそのホスト・システムです。信頼できるソースのデータは定期的にバックアップしてください。
親トピック: アクティブ/アクティブ構成の考慮事項
データ・ループの防止
双方向構成では、あるシステムから別のシステムにレプリケートされたSQL変更は、最初のシステムに再度レプリケートされないようにする必要があります。そうしないと、システム間でデータの移動が繰り返され、次の例のように無限ループに陥ります。
-
ユーザー・アプリケーションがシステムAのある行を更新します。
-
Extractは、システムAでその行を抽出してシステムBに送信します。
-
Replicatは、システムBでその行を更新します。
-
Extractは、システムBでその行を抽出してシステムAに戻します。
-
その行がシステムAに適用されます(2回目)。
-
このループが無限に継続します。
データのループバックを防止するには、状況に応じて次の処理を行う必要があります。
-
Replicatによって生成されるSQL操作を取得しないようにします。ただし、Extractのパラメータ・ファイルに指定されているオブジェクトがビジネス・アプリケーションに含まれる場合は、それらのビジネス・アプリケーションによって生成されるSQL操作の取得を有効化します。
-
ローカルReplicatトランザクションを識別します(Extractプロセスでそれらのトランザクションを無視するため)。
Replicat操作の取得の防止
使用中のデータベースに応じて、Replicat操作を取得しないように明示的に指示する必要がある場合とない場合があります。
Replicatトランザクションの取得の防止(Oracle)
ReplicatによってOracleデータベースに適用されるSQLの取得を防止するために、Extractのキャプチャ・モードに応じて異なるオプションが用意されています。
-
Extractがクラシックまたは統合キャプチャ・モードである場合は、
TRANLOGOPTIONS
パラメータをEXCLUDETAG
tag
オプションとともに使用します。このパラメータを使用すると、Extractプロセスは、指定されたREDOタグの付いたトランザクションを無視します。タグ値の設定は、「Replicatトランザクションの識別」を参照してください。 -
Extractがクラシック・キャプチャ・モードである場合は、Extractの
TRANLOGOPTIONS
パラメータをEXCLUDEUSER
またはEXCLUDEUSERID
オプションとともに使用して、ReplicatがDDLおよびDMLトランザクションの適用に使用しているユーザー名またはユーザーIDを除外します。複数のEXCLUDEUSER
文を使用できます。指定されたユーザーは、GETREPLICATES
またはIGNOREREPLICATES
パラメータのルールの対象になります。詳細は、「Replicatトランザクションの取得の防止(他のデータベース)」を参照してください。
親トピック: Replicat操作の取得の防止
Replicatトランザクションの取得の防止(他のデータベース)
Replicatによって他のデータベース・タイプ(Extractがクラシック・キャプチャ・モードで動作する場合はOracleを含む)に適用されるSQLの取得を防止するには、次のパラメータを使用します。
-
GETAPPLOPS | IGNOREAPPLOPS
: Replicat以外のビジネス・アプリケーションによって生成されたデータ操作(DML)を、Extractが特定の証跡またはファイルに書き込む内容に含めるかどうかを制御します。 -
GETREPLICATES | IGNOREREPLICATES
: Replicatによって生成されたDML操作を、Extractが特定の証跡またはファイルに書き込む内容に含めるかどうかを制御します。
親トピック: Replicat操作の取得の防止
Replicatトランザクションの識別
Replicatトランザクションを識別するようにExtractを構成するには、Extractがデータを取得するデータベースについて、次の手順に従います。
DB2 z/OS、DB2 LUWおよびDB2 for i
Extractのパラメータ・ファイルで次のパラメータ文を使用して、Replicatユーザー名を識別します。
TRANLOGOPTIONS EXCLUDEUSER user
このパラメータ文によって、このユーザーにより生成されるすべてのDDLおよびDMLトランザクションがReplicatトランザクションとしてマークされます。ユーザー名は、Extractによって読み取られるトランザクション・レコードに含まれます。
親トピック: Replicatトランザクションの識別
MySQL
Extractのパラメータ・ファイルで次のパラメータ文を使用して、Replicatのチェックポイント表の名前を識別します。
TRANLOGOPTIONS FILTERTABLE table_name
Replicatは、その各トランザクションの終了時に、チェックポイント手順の一環としてチェックポイント表にチェックポイントを書き込みます。(これは、ADD CHECKPOINTTABLE
コマンドを使用して作成される表です。)各Replicatトランザクションにこの表への書込みが含まれるため、この表を使用して双方向構成のReplicatトランザクションを識別できます。FILTERTABLE
によってチェックポイント表の名前を識別し、その表に対する操作が含まれるトランザクションをExtractで無視するようにします。
親トピック: Replicatトランザクションの識別
Oracle
Oracle環境でReplicatトランザクションを識別する方法は複数あります。Replicatがクラシックまたは統合モードである場合は、次のパラメータを使用します。
-
Replicatのパラメータ・ファイルで、
DBOPTIONS
をSETTAG
オプションとともに使用します。Replicatは、指定した値(これらのトランザクションをREDOストリーム内で識別)で適用されるトランザクションにタグ付けします。SETTAG
のデフォルト値は00
です。有効値は、16進数で構成される単一のTAG値です。タグの詳細は、『Oracle GoldenGateリファレンス』を参照してください。
-
Extractパラメータ・ファイルで
TRANLOGOPTIONS
パラメータをEXCLUDETAG
オプションとともに使用します。Extractに関連付けられたログマイニング・サーバーは、SETTAG
値のタグが付いたREDOを除外します。Replicatのパラメータ・ファイルで
SETTAG
を設定する方法は次のとおりです。DBOPTIONS SETTAG 0935
Extractのパラメータ・ファイルで
EXCLUDETAG
を設定する方法は次のとおりです。TRANLOGOPTIONS EXCLUDETAG 0935
複数のタグを除外する場合は、個別の
TRANLOGOPTIONS EXCLUDETAG
文をそれぞれ指定する必要があります。
トランザクション名またはReplicatユーザーのユーザーIDを使用して、Replicatトランザクションを識別することもできます。Extractの構成時に、どちらを無視するか選択できます。「Replicatトランザクションの取得の防止(Oracle)」を参照してください。
詳細は、『Oracle GoldenGateリファレンス』を参照してください。
親トピック: Replicatトランザクションの識別
双方向構成でのDDLレプリケーション
Oracleデータベースでのみ現在サポートされているDDLの双方向レプリケートでは、他にも考慮すべき事項があります。詳細は、Oracle DatabaseのためのOracle GoldenGateの使用のDDLレプリケーション環境の管理 を参照してください。
親トピック: データ・ループの防止
競合の管理
アクティブ/アクティブ構成では、統一された競合解決手順をすべてのシステムに用意しておく必要があります。競合は即座に識別され、可能なかぎり自動的に処理される必要がありますが、様々なビジネス・アプリケーションがこの処理に関する独自の要件セットを持っています。
Oracle GoldenGateは非同期ソリューションであるため、個別のシステム上にある同一のデータセットに対して(ほぼ)同時に変更が行われた場合、競合が発生する可能性があります。競合は、同時変更のタイミングが次の非同期状態のいずれかにつながる場合に発生します。
-
Replicatが、一意性整合性制約(
PRIMARY KEY
制約やUNIQUE
制約など)に違反する挿入操作または更新操作を適用すると、一意性競合が発生します。この競合タイプの例としては、2つの異なるデータベースから2つのトランザクションが発生し、各トランザクションが同じ主キー値で表に行を挿入する場合があげられます。 -
Replicatが、同じ行への別の更新と競合する更新を適用すると、更新競合が発生します。更新競合が発生するのは、異なるデータベースから生じた2つのトランザクションがほぼ同時に同じ行を更新した場合です。証跡レコードに格納されている古い値(変更前の値)とターゲット・データベース内の同じ行の現行値との間に差異があると、Replicatは更新競合を検出します。
-
2つのトランザクションが異なるデータベースから生じ、一方が行を削除するのと同時にもう一方が同じ行を更新または削除すると、削除競合が発生します。この場合、その行は存在せず、更新も削除もできません。主キーが存在しないため、Replicatは行を見つけられません。
たとえば、データベースAのユーザーAがある行を更新し、データベースBのユーザーBが同じ行を更新するとします。ユーザーAのトランザクションがデータベースBに同期されるより前にユーザーBのトランザクションが実行されると、レプリケートされたトランザクションで競合が発生します。
3つのデータベースが関与するさらに複雑な例を基に、順序にまつわるさらに複雑な競合について説明します。A、B、Cという3つのデータベースがあるとします。あるユーザーがデータベースAに行を挿入すると、その行はデータベースBにレプリケートされます。次に、別のユーザーがその行をデータベースBで変更すると、行の変更がデータベースCにレプリケートされます。Bからの行の変更が、データベースAからの行の挿入より前にデータベースCに到着した場合、Cは競合を検出します。
可能であれば、競合発生のすべての可能性を最小化または排除してください。そのいくつかの方法を次に示します。
-
各データベースで変更できる列を制限するようにアプリケーションを構成します。たとえば、地理的地域に基づいてアクセスを制限できます(異なる販売地域でその独自の顧客レコードのみを変更できるようにするなど)。別の例として、あるデータベースの顧客サービス・アプリケーションには顧客表の
NAME
列とADDRESS
列の変更のみを許可し、別のデータベースの財務アプリケーションにはBALANCE
列の変更のみを許可することが可能です。どちらの例の場合でも、同じレコードの同時更新による競合は発生しません。 -
同期のレイテンシを最小限に抑えます。データベースAのユーザーAとデータベースBのユーザーBがほぼ同時に同じ行を更新しても、ユーザーBのトランザクションが完了する前にユーザーAのトランザクションがターゲット行にレプリケートされていれば、競合は回避されます。Oracle GoldenGateプロセスのパフォーマンス向上のための推奨事項は、Oracle GoldenGateのパフォーマンスのチューニングを参照してください。
競合を回避するには、レプリケーション・レイテンシを最小限に抑える必要があります。競合が避けられない場合は、Oracle GoldenGateの競合検出および解決(CDR)機能または独自に開発した方法によって、競合をすみやかに特定し、可能なかぎり自動的に解決する必要があります。独自の方法は、SQLEXEC
とユーザー・イグジット機能を通じてOracle GoldenGate処理に統合できます。Oracle GoldenGateを使用した競合の処理の詳細は、競合の検出および解決の構成を参照してください。
Oracleデータベースには、自動競合検出解決(CDR)機能があります。詳細は、『Oracle Database XStreamガイド』のOracle GoldenGate自動競合検出および解決に関する項を参照してください。
追加情報
次のドキュメントには、Oracle GoldenGateの構成に関連する追加情報が記載されています。
-
その他のシステム要件、プロセス構成およびデータベースの設定要件については、使用中のデータベース・タイプに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントを参照してください。
-
Oracle GoldenGateの変更取得および配信グループの構成方法の詳細は、オンライン変更同期の構成を参照してください。
-
Oracle GoldenGateのその他のチューニング・オプションは、Oracle GoldenGateのパフォーマンスのチューニングを参照してください。
-
Oracle GoldenGateのコマンドとパラメータの構文の詳細および説明は、『Oracle GoldenGateリファレンス』を参照してください。
アクティブ/アクティブ構成の作成
作成するオブジェクトのビジュアル表現は、図9-1を参照してください。
両システムの前提条件
両方のシステムで次の前提条件を実行します。
-
Replicatのチェックポイント表を作成します(Oracle統合Replicatを使用していない場合)。手順については、「チェックポイント表の作成」を参照してください。
-
Managerプロセスの構成手順については、Managerおよびネットワーク通信の構成を参照してください。
親トピック: アクティブ/アクティブ構成の作成
プライマリ・システムからセカンダリ・システムに対する構成
次の手順では、プライマリ・システムからセカンダリ・データベースへのデータ送信に必要なプロセスを追加します。
プライマリExtractグループを構成する手順
プライマリ・システムで次の手順を実行します。
-
ADD EXTRACT
コマンドを使用してプライマリExtractグループを作成します。説明上、このグループをext_1
と呼びます。ADD EXTRACT
ext_1
, {TRANLOG | INTEGRATED TRANLOG}, BEGINtime
-
ADD EXTTRAIL
コマンドを使用してローカル証跡を追加します。説明上、この証跡をlocal_trail_1
と呼びます。ADD EXTTRAIL
local_trail_1
, EXTRACText_1
EXTRACT
では、この証跡に書込みを行うext_1
グループを指定します -
EDIT PARAMS
コマンドを使用してext_1
グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。-- Identify the Extract group: EXTRACT
ext_1
-- Specify database login information as needed for the database: [SOURCEDBdsn_1
][, USERIDALIASalias
] -- Specify the local trail that this Extract writes to -- and the encryption algorithm: ENCRYPTTRAILalgorithm
EXTTRAILlocal_trail_1
-- Exclude Replicat transactions. Uncomment ONE of the following: -- DB2 z/OS, DB2 LUW, DB2 IBM i, and Oracle (classic capture): -- TRANLOGOPTIONS EXCLUDEUSERReplicat_user
-- Oracle (classic capture) alternative to EXCLUDEUSER: -- EXCLUDEUSERIDOracle_uid
-- Oracle integrated capture: -- EXCLUDETAGtag
-- SQL Server: -- TRANLOGOPTIONS EXCLUDETRANStransaction_name
-- -- Teradata: -- SQLEXEC 'SET SESSION OVERRIDE REPLICATION ON;' -- SQLEXEC 'COMMIT;' -- Specify API commands if Teradata: VAM library name, PARAMS ('param
' [, 'param
'] [, ...]) -- Capture before images for conflict resolution: GETBEFORECOLS (ONoperation
{ALL | KEY | KEYINCLUDING (col_list
) | ALLEXCLUDING (col_list
)}) -- Log all scheduling columns for CDR and if using integrated Replicat LOGALLSUPCOLS -- Specify tables to be captured and (optional) columns to fetch: TABLE [container
.|catalog
.]owner
.* [, FETCHCOLScols
| FETCHCOLSEXCEPTcols
];注意:
例のVAMパラメータは、異機種データベースにのみ使用され、Oracle Databaseには適用されません。
データ・ポンプを構成する手順
プライマリ・システムで次の手順を実行します。
-
ADD EXTRACT
コマンドを使用してデータ・ポンプ・グループを作成します。説明上、このグループをpump_1
と呼びます。ADD EXTRACT
pump_1
, EXTTRAILSOURCElocal_trail_1
, BEGINtime
EXTTRAILSOURCE
では、データソースとしてlocal_trail_1
を指定します。 -
ADD RMTTRAIL
コマンドを使用して、セカンダリ・システムに作成するリモート証跡を追加します。説明上、この証跡をremote_trail_1
と呼びます。ADD RMTTRAIL
remote_trail_1
, EXTRACTpump_1
EXTRACT
では、この証跡に書込みを行うpump_1
データ・ポンプを指定します。その他の
ADD RMTTRAIL
オプションは、『Oracle GoldenGateリファレンス』を参照してください。EDIT PARAMS
コマンドを使用してpump_1
グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。-- Identify the data pump group: EXTRACT
pump_1
-- Specify database login information as needed for the database: [SOURCEDBdsn_1
][, USERIDALIASalias
] -- Decrypt the data only if the data pump must process it. -- DECRYPTTRAIL -- Specify the name or IP address of the secondary system -- and optional encryption of data over TCP/IP: RMTHOSTOPTIONSsystem_2
, MGRPORTport_number
, ENCRYPTencryption_options
-- Specify remote trail and encryption algorithm on secondary system: ENCRYPTTRAILalgorithm
RMTTRAILremote_trail_1
-- Specify tables to be captured: TABLE [container
.|catalog
.]owner
.*;
Replicatグループを構成する手順
セカンダリ・システムで次の手順を実行します。
-
ADD REPLICAT
コマンドを使用してReplicatグループを作成します。説明上、このグループをrep_1
と呼びます。ADD REPLICAT
rep_1
[, INTEGRATED | COORDINATED [MAXTHREADSnumber
]] , EXTTRAILremote_trail_1
, BEGINtime
EXTTRAIL
では、このReplicatが読み取る証跡としてremote_trail_1
を指定します。 -
EDIT PARAMS
コマンドを使用してrep_1
グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。-- Identify the Replicat group: REPLICAT
rep_1
-- State that source and target definitions are identical: ASSUMETARGETDEFS -- Specify database login information as needed for the database: [TARGETDBdsn_2
][, USERIDALIASalias
] -- Specify error handling rules: REPERROR (error
,response
) -- Set redo tag for Oracle only replicat via settag -- Default is 00. SETTAGtag_value
-- Specify tables for delivery, threads if coordinated Replicat -- and conflict-resolution: MAP [container
.|catalog
.]owner
.*, TARGETowner
.*, COMPARECOLS (ONoperation
{ALL | KEY | KEYINCLUDING (col_list
) | ALLEXCLUDING (col_list
)}), RESOLVECONFLICT (conflict type
(resolution_name
,resolution_type
COLS (col
[,...])) [, THREAD (thread_ID
)] [, THREADRANGE (thread_range
[,column_list
])] ; -- Specify mapping of exceptions to exceptions table: MAP [container
.|catalog
.]owner
.*, TARGETowner
.exceptions
, EXCEPTIONSONLY;
親トピック: アクティブ/アクティブ構成の作成
セカンダリ・システムからプライマリ・システムに対する構成
次の手順では、セカンダリ・システムからプライマリ・データベースへのデータ送信に必要なプロセスを追加します。
プライマリExtractグループを構成する手順
セカンダリ・システムで次の手順を実行します。
注意:
この手順は、これまでに作成した構成を逆にするイメージです。
-
ADD EXTRACT
コマンドを使用してプライマリExtractグループを作成します。説明上、このグループをext_2
と呼びます。ADD EXTRACT
ext_2
, {TRANLOG | INTEGRATED TRANLOG}, BEGINtime
-
ADD EXTTRAIL
コマンドを使用してローカル証跡を追加します。説明上、この証跡をlocal_trail_2
と呼びます。ADD EXTTRAIL
local_trail_2
, EXTRACText_2
EXTRACT
では、この証跡に書込みを行うext_2
グループを指定します -
EDIT PARAMS
コマンドを使用してext_2
グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。-- Identify the Extract group: EXTRACT
ext_2
-- Specify database login information as needed for the database: [SOURCEDBdsn_2
][, USERIDALIASalias
] -- Specify the local trail that this Extract writes to -- and the encryption algorithm: ENCRYPTTRAILalgorithm
EXTTRAILlocal_trail_2
-- Exclude Replicat transactions. Uncomment ONE of the following: -- DB2 z/OS, DB2 LUW, DB2 IBM i, and Oracle: -- TRANLOGOPTIONS EXCLUDEUSERReplicat_user
-- Oracle alternative to EXCLUDEUSER: -- EXCLUDEUSERIDOracle_uid
-- Oracle integrated capture: -- EXCLUDETAGtag
-- SQL Server: -- TRANLOGOPTIONS EXCLUDETRANStransaction_name
---- Teradata: -- SQLEXEC 'SET SESSION OVERRIDE REPLICATION ON;' -- SQLEXEC 'COMMIT;' -- Oracle: -- TRACETABLEtrace_table_name
-- Log all scheduling columns for CDR and if using integrated Replicat LOGALLSUPCOLS -- Capture before images for conflict resolution: GETBEFORECOLS (ONoperation
{ALL | KEY | KEYINCLUDING (col_list
) | ALLEXCLUDING (col_list
)}) -- Specify tables to be captured and (optional) columns to fetch: TABLE [container
.|catalog
.]owner
.* [, FETCHCOLScols
| FETCHCOLSEXCEPTcols
];注意:
Oracle DBFSデータをレプリケートするには、各ノードの
TABLE
文で、内部的に生成されたローカルの読取り/書込みDBFS表を指定します。これらの表を識別し、Oracle GoldenGateによる伝播が行われるようにDBFSを構成する方法の詳細は、『Oracle DatabaseのためのOracle GoldenGateの使用』の必要なパッチの適用に関する項を参照してください。
データ・ポンプを構成する手順
セカンダリ・システムで次の手順を実行します。
-
ADD EXTRACT
コマンドを使用してデータ・ポンプ・グループを作成します。説明上、このグループをpump_2
と呼びます。ADD EXTRACT
pump_2
, EXTTRAILSOURCElocal_trail_2
, BEGINtime
EXTTRAILSOURCE
では、データソースとしてlocal_trail_2
を指定します。 -
ADD RMTTRAIL
コマンドを使用して、プライマリ・システムに作成するリモート証跡を追加します。説明上、この証跡をremote_trail_2
と呼びます。ADD RMTTRAIL
remote_trail_2
, EXTRACTpump_2
EXTRACT
では、この証跡に書込みを行うpump_2
データ・ポンプを指定します。 -
EDIT PARAMS
コマンドを使用してpump_2
グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。-- Identify the data pump group: EXTRACT
pump_2
-- Specify database login information as needed for the database: [SOURCEDBdsn_2
][, USERIDALIASalias
] -- Decrypt the data only if the data pump must process it. -- DECRYPTTRAIL -- Specify the name or IP address of the primary system -- and optional encryption of data over TCP/IP: RMTHOSTOPTIONSsystem_1
, MGRPORTport_number
, ENCRYPTencryption_options
-- Specify the remote trail and encryption algorithm on the primary system: ENCRYPTTRAILalgorithm
RMTTRAILremote_trail_2
-- Specify tables to be captured: TABLE [container
.|catalog
.]owner
.*;注意:
Oracle DBFSデータをレプリケートするには、各ノードの
TABLE
文で、内部的に生成されたローカルの読取り/書込みDBFS表を指定します。これらの表を識別して、Oracle GoldenGateによる伝播が行われるようにDBFSを構成する方法の詳細は、『Oracle DatabaseのためのOracle GoldenGateの使用』のDBFSファイル・システムの構成に関する項を参照してください。
Replicatグループを構成する手順
プライマリ・システムで次の手順を実行します。
-
ADD REPLICAT
コマンドを使用してReplicatグループを作成します。説明上、このグループをrep_2
と呼びます。ADD REPLICAT
rep_2
[, INTEGRATED | COORDINATED [MAXTHREADSnumber
]] , EXTTRAILremote_trail_2
, BEGINtime
EXTTRAIL
では、このReplicatが読み取る証跡としてremote_trail_2
を指定します。インストールに必要なこれらのオプションおよびその他のオプションの詳細は、『Oracle GoldenGateリファレンス』の
ADD RMTTRAIL
に関する項を参照してください。 -
EDIT PARAMS
コマンドを使用してrep_2
グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。-- Identify the Replicat group: REPLICAT
rep_2
-- State that source and target definitions are identical: ASSUMETARGETDEFS -- Specify database login information as needed for the database: [TARGETDBdsn_1
][, USERIDALIASalias
] -- Specify error handling rules: REPERROR (error
,response
) -- Specify tables for delivery, threads if coordinated Replicat -- and conflict-resolution: MAP [container
.|catalog
.]owner
.*, TARGETowner
.*, COMPARECOLS (ONoperation
{ALL | KEY | KEYINCLUDING (col_list
) | ALLEXCLUDING (col_list
)}), RESOLVECONFLICT (conflict type
(resolution_name
,resolution_type
COLS (col
[,...])) [, THREAD (thread_ID
)] [, THREADRANGE (thread_range
[,column_list
])] ; -- Specify mapping of exceptions to exceptions table: MAP [container
.|catalog
.]owner
.*, TARGETowner
.exceptions
, EXCEPTIONSONLY;注意:
Oracle DBFSデータをレプリケートするには、各ノードの
TABLE
文で、内部的に生成されたローカルの読取り/書込みDBFS表を指定します。
親トピック: アクティブ/アクティブ構成の作成