この章では、ライブ・スタンバイ・データベースの管理用にOracle GoldenGateを構成する方法について説明します。
この章の内容は次のとおりです。
Oracle GoldenGateでは、アクティブ/パッシブ型の双方向構成がサポートされます。この構成では、Oracle GoldenGateによって、計画停止および計画外停止時のフェイルオーバー用に準備されたライブ・スタンバイ・システムの完全レプリカ・データベースにアクティブ・プライマリ・データベースからデータがレプリケートされます。
この構成では、ライブ・スタンバイ・システム上にアクティブではないOracle GoldenGate Extractグループとアクティブではないデータ・ポンプが存在します。どちらのグループも、スイッチオーバーまたはフェイルオーバーでライブ・スタンバイ・システムにユーザー・アプリケーションが切り替えられるまで停止されています。ユーザー・アクティビティがスタンバイに移動すると、これらのグループはローカル証跡へのトランザクションの取得を開始します。データは、プライマリ・データベースが再度使用可能になるまでディスク上に格納されます。
プライマリ・システムに障害が発生した場合、Oracle GoldenGateのManagerプロセスとReplicatプロセスは、スタンバイから取得されたデータベース・インスタンスと連携して、プライマリ・システムのリカバリ後に2つのシステム間で同等性を回復します。ユーザーは、適切な時点でプライマリ・システムに再度移動され、Oracle GoldenGate構成は将来のフェイルオーバーに備えて再び準備完了モードに戻ります。
次の各項では、ライブ・スタンバイ構成の考慮事項について説明します。
プライマリ・データベースは、信頼できるソースです。これは、通常の運用モード時にアクティブ・ソースであるデータベースで、初期同期フェーズや後続のすべての再同期時に他のデータベースの導出元になるデータベースです。信頼できるソースのデータは定期的にバックアップしてください。
ライブ・スタンバイのほとんどの実装では、ソース・データベースとターゲット・データベースは、内容および構造において同一です。データのマッピング、変換およびフィルタリングは、通常、この種の構成では適切な処理ではありませんが、ユーザーのビジネス・モデルで必要とされる場合、Oracle GoldenGateではこのような機能もサポートされます。これらの機能をサポートするには、TABLE
パラメータおよびMAP
パラメータのオプションを使用します。
アプリケーションが対応している場合、レポートや問合せにライブ・スタンバイ・システムを使用できますが、DMLは使用できません。Oracle GoldenGate構成のオブジェクトに影響するライブ・スタンバイ・システム上にアクティブなトランザクション型アプリケーションを配置する場合、そのアプリケーションはアクティブ/アクティブ構成で設定する必要があります。詳細は、第9章「アクティブ/アクティブ型高可用性のためのOracle GoldenGateの構成」を参照してください。
通常の運用モード時には、ライブ・スタンバイ・システムのプライマリExtractおよびデータ・ポンプは停止状態にし、アクティブ・ソースのReplicatも停止状態にします。この処理によって、スタンバイ・システムで誤って発生したDMLがアクティブ・ソースに伝播することを防止します。データをアクティブ・ソースからスタンバイ・システムに移動するExtract、データ・ポンプおよびReplicatのみアクティブにできます。
プライマリ・システムとスタンバイ・システムにあるOracle GoldenGateの作業ディレクトリは、定期的にバックアップしてください。このバックアップには、Oracle GoldenGateのインストール・ディレクトリのルート・レベルにインストールされているすべてのファイルと、そのディレクトリ内のすべてのサブディレクトリを含める必要があります。Oracle GoldenGate環境のバックアップを保持しておくことで、プロセス・グループおよびパラメータ・ファイルを再作成する必要がなくなります。
プライマリ・システムとライブ・スタンバイ・システムは、計画済のスイッチオーバーまたは計画外のソース障害の発生時にユーザーが即座にアクセスできるように準備しておく必要があります。高可用性計画の次の構成要素を、各システムですぐに使用できるように準備してください。
挿入、更新および削除権限を付与するスクリプト。
ライブ・スタンバイ・システムでトリガーおよびカスケード削除制約を有効化するスクリプト。(これらは、使用中のデータベース・タイプに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントに記載された設定手順で無効になっている可能性があります。)
アプリケーション・サーバーをスイッチオーバーし、アプリケーションを起動して、レプリケーション環境に含まれない必須ファイルをコピーするスクリプト。
ソース・システムに障害が発生した場合にユーザーをライブ・スタンバイに移動するためのフェイルオーバー手順。
データベース生成による値(Oracle順序など)がキーの一部として使用される場合、その値の範囲は、重複しないように各システムで異なっている必要があります。アプリケーションが対応している場合、値に位置識別子を追加して強制的に一意性を確保できます。
Oracle Databaseの場合、各データベースで一意性を確保しながら順序をレプリケートするようにOracle GoldenGateを構成できます。順序をレプリケートするには、SEQUENCE
パラメータおよびMAP
パラメータを使用します。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。
次のドキュメントには、Oracle GoldenGateの構成に関連する追加情報が記載されています。
その他のシステム要件、プロセス構成およびデータベースの設定要件については、使用中のデータベース・タイプに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントを参照してください。これらのガイドは、このマニュアルの「はじめに」の「関連ドキュメント」にリストされています。
Oracle GoldenGateの変更取得および配信グループの構成方法の詳細は、第14章「オンライン変更同期の構成」を参照してください。
Oracle GoldenGateのその他のチューニング・オプションは、第19章「Oracle GoldenGateのパフォーマンスのチューニング」を参照してください。
Oracle GoldenGateのコマンドとパラメータの構文の詳細および説明は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
作成するオブジェクトのビジュアル表現は、図8-1を参照してください。
両方のシステムで次の前提条件を実行します。
Replicatのチェックポイント表を作成します(Oracle統合Replicatを使用していない場合)。手順については、14.3項「チェックポイント表の作成」を参照してください。
第3章「Managerおよびネットワーク通信の構成」の指示に従ってManagerプロセスを構成します。
次の手順では、プライマリ・データベースからデータを取得して、それをスタンバイ・データベースにレプリケートするよう、Oracle GoldenGateを構成します。
プライマリExtractグループを構成する手順
アクティブ・ソースで次の手順を実行します。
ソースで、ADD EXTRACT
コマンドを使用してExtractグループを作成します。説明上、このグループをext_1と呼びます。
ADD EXTRACText_1
, {TRANLOG | INTEGRATED TRANLOG}, BEGINtime
[option
[, ...]]
これらのオプション、およびインストール環境によって必要になるその他のADD EXTRACTオプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
ADD EXTTRAIL
コマンドを使用してローカル証跡を追加します。説明上、この証跡をlocal_trail_1と呼びます。
ADD EXTTRAILlocal_trail_1
, EXTRACText_1
EXTRACT
では、この証跡に書込みを行うext_1グループを指定します。
EDIT PARAMS
コマンドを使用してext_1グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。
-- Identify the Extract group: EXTRACText_1
-- Specify database login information as needed for the database: [SOURCEDBdsn_1
][, USERIDALIASalias
] -- Log all scheduling columns if using integrated Replicat LOGALLSUPCOLS -- Specify the local trail that this Extract writes to -- and the encryption algorithm: ENCRYPTTRAILalgorithm
EXTTRAILlocal_trail_1
-- Specify sequences to be captured: SEQUENCE [container
.]owner
.sequence
; -- Specify tables to be captured: TABLE [container
.]owner
.*;
データ・ポンプを構成する手順
アクティブ・ソースで次の手順を実行します。
ADD EXTRACT
コマンドを使用してデータ・ポンプ・グループを作成します。説明上、このグループをpump_1と呼びます。
ADD EXTRACTpump_1
, EXTTRAILSOURCElocal_trail_1
, BEGINtime
EXTTRAILSOURCE
では、データソースとしてlocal_trail_1を指定します。
ADD RMTTRAIL
コマンドを使用して、スタンバイ・システムに作成するリモート証跡を指定します。
ADD RMTTRAILremote_trail_1
, EXTRACTpump_1
EXTRACT
では、この証跡に書込みを行うpump_1データ・ポンプを指定します。
その他のADD RMTTRAILオプションは、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
EDIT PARAMS
コマンドを使用してpump_1グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。
-- Identify the data pump group: EXTRACTpump_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 standby system -- and optional encryption of data over TCP/IP: RMTHOSTOPTIONSsystem_2
, MGRPORTport_number
, ENCRYPTencryption_options
-- Specify the remote trail and encryption algorithm on the standby system: ENCRYPTTRAILalgorithm
RMTTRAILremote_trail_1
-- Pass data through without mapping, filtering, conversion: PASSTHRU -- Specify sequences to be captured: SEQUENCE [container
.]owner
.sequence
; -- Specify tables to be captured: TABLE [container
.]owner
.*;
注意: ライブ・スタンバイ構成では、通常、ソースとターゲットのデータ構造は同一であるため、PASSTHRU モードが仮定されます。このモードでは、列マッピング、フィルタリング、SQLEXEC 機能、変換などのデータ操作は実行できません。 |
Replicatグループを構成する手順
ライブ・スタンバイ・システムで次の手順を実行します。
Replicatのチェックポイント表を作成します(Oracle統合Replicatを使用していない場合)。手順については、14.3項「チェックポイント表の作成」を参照してください。
ADD REPLICAT
コマンドを使用してReplicatグループを作成します。説明上、このグループをrep_1と呼びます。
ADD REPLICATrep_1
[, INTEGRATED | COORDINATED [MAXTHREADSnumber
]] , EXTTRAILremote_trail_1
, BEGINtime
EXTTRAIL
では、このReplicatが読み取る証跡としてremote_trail_1を指定します。
これらのオプション、およびインストール環境によって必要になるその他のオプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
EDIT PARAMS
コマンドを使用してrep_1グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。
-- Identify the Replicat group: REPLICATrep_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
) -- Specify tables for delivery and threads if using coordinated Replicat: MAP [container
.|catalog
.]owner
.table
, TARGETowner
.table
[, DEFtemplate
] [, THREAD (thread_ID)][, THREADRANGE (thread_range[, column_list])] ;
次の手順では、Oracle GoldenGateをパッシブ・モードで構成します。このモードでは、Oracle GoldenGateプロセスは、トランザクション・アクティビティをセカンダリ・システムにスイッチオーバーした後に、セカンダリ・システムからデータを取得して、それをプライマリ・データベースにレプリケートする準備はできていますが、作業は開始されません。
注意: この手順は、これまでに作成した構成を逆にするイメージです。 |
プライマリExtractグループを構成する手順
ライブ・スタンバイ・システムで次の手順を実行します。
ソースで、ADD EXTRACT
コマンドを使用してExtractグループを作成します。説明上、このグループをext_2と呼びます。
ADD EXTRACText_2
, {TRANLOG | INTEGRATED TRANLOG}, BEGINtime
[option
[, ...]]
これらのオプション、およびインストール環境によって必要になるその他のADD EXTRACTオプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
ADD EXTTRAIL
コマンドを使用してローカル証跡を追加します。説明上、この証跡をlocal_trail_2と呼びます。
ADD EXTTRAILlocal_trail_2
, EXTRACText_2
EXTRACT
では、この証跡に書込みを行うext_2グループを指定します。
EDIT PARAMS
コマンドを使用してext_2グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。
-- Identify the Extract group: EXTRACText_2
-- Specify database login information as needed for the database: [SOURCEDBdsn_2
][, USERIDALIASalias
] -- Log all scheduling columns if using integrated Replicat LOGALLSUPCOLS -- Specify the local trail this Extract writes to and the encryption algorithm: ENCRYPTTRAILalgorithm
EXTTRAILlocal_trail_2
-- Specify sequences to be captured: SEQUENCE [container
.]owner
.sequence
; -- Specify tables to be captured: TABLE [container
.]owner
.*;
データ・ポンプを構成する手順
ライブ・スタンバイ・システムで次の手順を実行します。
ADD EXTRACT
コマンドを使用してデータ・ポンプ・グループを作成します。説明上、このグループをpump_2と呼びます。
ADD EXTRACTpump_2
, EXTTRAILSOURCElocal_trail_2
, BEGINtime
EXTTRAILSOURCE
では、データソースとしてlocal_trail_2を指定します。
ADD RMTTRAIL
コマンドを使用して、アクティブ・ソース・システムに作成するリモート証跡remote_trail_2を追加します。
ADD RMTTRAILremote_trail_2
, EXTRACTpump_2
EXTRACT
では、この証跡に書込みを行うpump_2データ・ポンプを指定します。
その他のADD RMTTRAILオプションは、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
EDIT PARAMS
コマンドを使用してpump_2グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。
-- Identify the data pump group: EXTRACTpump_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 active source system -- and optional encryption of data over TCP/IP: RMTHOSTOPTIONSsystem_1
, MGRPORTport_number
, ENCRYPTencryption_options
-- Specify remote trail and encryption algorithm on active source system: ENCRYPTTRAILalgorithm
RMTTRAILremote_trail_2
-- Pass data through without mapping, filtering, conversion: PASSTHRU -- Specify sequences to be captured: SEQUENCE [container
.]owner
.sequence
; -- Specify tables to be captured: TABLE [container
.]owner
.*;
Replicatグループを構成する手順
アクティブ・ソースで次の手順を実行します。
ADD REPLICAT
コマンドを使用してReplicatグループを作成します。説明上、このグループをrep_2と呼びます。
ADD REPLICATrep_2
[, INTEGRATED | COORDINATED [MAXTHREADSnumber
]] , EXTTRAILremote_trail_1
, BEGINtime
EXTTRAIL
では、このReplicatが読み取る証跡としてremote_trail_2を指定します。
これらのオプション、およびインストール環境によって必要になるその他のオプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
EDIT PARAMS
コマンドを使用してrep_2グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。
-- Identify the Replicat group: REPLICATrep_2
-- State that source and target definitions are identical: ASSUMETARGETDEFS -- Specify database login information as needed for the database: [TARGETDBdsn_1
][, USERIDALIASalias
] -- Handle collisions between failback data copy and replication: HANDLECOLLISIONS -- Specify error handling rules: REPERROR (error
,response
) -- Specify tables for delivery and threads if using coordinated Replicat: MAP [container
.|catalog
.]owner
.table
, TARGETowner
.table
[, DEFtemplate
] [, THREAD (thread_ID)][, THREADRANGE (thread_range[, column_list])] ;
この手順では、データベースに影響しないシステム・メンテナンスなどの手順をプライマリ・システムで実行できるように、計画された安全な方法でユーザー・アプリケーション・アクティビティをプライマリ・データベースからライブ・スタンバイ・システムに移動します。
ライブ・スタンバイにユーザー・アクティビティを移動する手順
(オプション)セカンダリ・システムでシステム・メンテナンスを実行する必要がある場合、セカンダリ・システムからプライマリ・システムにユーザーを戻した後に、ここでの手順を使用して即座に、または一定時間後に、その処理を実行できます。いずれにせよ、セカンダリ・システムを停止する必要がある場合は、その時間の長さにかかわらず、次の危険があることに注意してください。
プライマリ・システムのローカル証跡は、スタンバイのオフライン中にデータが蓄積するためにディスク領域を使い果す可能性があります。この場合、プライマリExtractは異常終了します。
スタンバイのオフライン中にプライマリ・システムに障害が発生すると、機能再開時にデータ変更をライブ・スタンバイに適用できなくなるため、同期状態が破損して、ライブ・スタンバイの完全な再インストールが必要になります。
プライマリ・システムで、ユーザー・アプリケーションを停止します。ただし、このシステムのプライマリExtractおよびデータ・ポンプの実行は継続し、未処理のトランザクション・データをすべて取得します。
プライマリ・システムで、EOFに到達して処理するレコードがなくなった
ことを示すメッセージが戻されるまで、プライマリExtractで次のコマンドを発行します。このメッセージは、すべてのトランザクションが取得されたことを示します。
LAG EXTRACT ext_1
プライマリ・システムで、プライマリExtractプロセスを停止します。
STOP EXTRACT ext_1
プライマリ・システムで、EOFに到達して処理するレコードがなくなった
ことを示すメッセージが戻されるまで、データ・ポンプで次のコマンドを発行します。このメッセージは、ポンプによってすべての取得データがライブ・スタンバイに送信されたことを示します。
LAG EXTRACT pump_1
プライマリ・システムで、データ・ポンプを停止します。
STOP EXTRACT pump_1
ライブ・スタンバイ・システムで、EOF(ファイルの終わり)に到達した
ことを示すメッセージが戻されるまで、STATUS REPLICAT
コマンドを発行します。このメッセージで、Replicatによってすべてのデータが証跡からデータベースに適用されたことを確認します。
STATUS REPLICAT rep_1
ライブ・スタンバイ・システムで、Replicatを停止します。
STOP REPLICAT rep_1
ライブ・スタンバイ・システムで、次の操作を実行します。
ビジネス・アプリケーションのユーザーに挿入、更新および削除権限を付与するスクリプトを実行します。
トリガーおよびカスケード削除制約を有効化するスクリプトを実行します。
アプリケーション・サーバーをスイッチオーバーし、アプリケーションを起動して、レプリケーション環境に含まれない必須ファイルをコピーするスクリプトを実行します。
ライブ・スタンバイ・システムで、現在のタイムスタンプに基づいてデータの取得を開始するようにプライマリExtractを変更します。そうしないと、ADD EXTRACT
コマンドによってグループが作成された日時にまで遡る操作を検索するために、Extractで不要な時間が費やされます。
ALTER EXTRACT ext_2
, BEGIN NOW
ライブ・スタンバイ・システムで、プライマリExtractを起動してトランザクション変更の取得に備えます。
START EXTRACT ext_2
注意: ライブ・スタンバイ・システムのデータ・ポンプを起動しないでください。また、プライマリ・システムのReplicatを起動しないでください。データは、プライマリ・データベースがユーザー・アクティビティに再度対応できるようになるまで、ライブ・スタンバイのローカル証跡に格納しておく必要があります。 |
ユーザー・アクティビティをライブ・スタンバイ・システムに切り替えます。
プライマリ・システムで、システム・メンテナンスを実行します。
プライマリ・システムにユーザー・アクティビティを再移動する手順
ライブ・スタンバイ・システムで、ユーザー・アプリケーションを停止します。ただし、プライマリExtractの実行は継続し、未処理のトランザクション・データをすべて取得します。
プライマリ・システムで、Replicatを起動して、ライブ・スタンバイ・システムからの変更の受信に備えます。
START REPLICAT rep_2
ライブ・スタンバイ・システムで、データ・ポンプを起動して、ローカル証跡に格納されているデータをTCP/IPを通じてプライマリ・システムに移動します。
START EXTRACT pump_2
ライブ・スタンバイ・システムで、EOFに到達して処理するレコードがなくなった
ことを示すメッセージが戻されるまで、プライマリExtractで次のコマンドを発行します。このメッセージは、すべてのトランザクションが取得されたことを示します。
LAG EXTRACT ext_2
ライブ・スタンバイ・システムで、プライマリExtractを停止します。
STOP EXTRACT ext_2
ライブ・スタンバイ・システムで、EOFに到達して処理するレコードがなくなった
ことを示すメッセージが戻されるまで、データ・ポンプで次のコマンドを発行します。このメッセージは、ポンプによってすべての取得データがプライマリ・システムに送信されたことを示します。
LAG EXTRACT pump_2
ライブ・スタンバイ・システムで、データ・ポンプを停止します。
STOP EXTRACT pump_2
プライマリ・システムで、EOF(ファイルの終わり)に到達した
ことを示すメッセージが戻されるまで、STATUS REPLICAT
コマンドを発行します。このメッセージで、Replicatによってすべてのデータが証跡からデータベースに適用されたことを確認します。
STATUS REPLICAT rep_2
プライマリ・システムで、Replicatを停止します。
STOP REPLICAT rep_2
プライマリ・システムで、次の操作を実行します。
ビジネス・アプリケーションのユーザーに挿入、更新および削除権限を付与するスクリプトを実行します。
トリガーおよびカスケード削除制約を有効化するスクリプトを実行します。
アプリケーション・サーバーをスイッチオーバーし、アプリケーションを起動して、レプリケーション環境に含まれない必須ファイルをコピーするスクリプトを実行します。
プライマリ・システムで、現在のタイムスタンプに基づいてデータの取得を開始するようにプライマリExtractを変更します。そうしないと、スタンバイ・システムでのユーザーの作業中にすでに取得してレプリケートされている操作を検索するために、Extractで不要な時間が費やされます。
ALTER EXTRACT ext_1
, BEGIN NOW
プライマリ・システムで、プライマリExtractを起動してトランザクション変更の取得に備えます。
START EXTRACT ext_1
ユーザー・アクティビティをプライマリ・システムに切り替えます。
(オプション)システム・メンテナンスをライブ・スタンバイ・システムで実行する必要がある場合、プライマリ・システムでデータ・ポンプを起動する前にその処理を即座に実行できます。取得データは、スタンバイのオフライン中にプライマリ・システムに蓄積されることに注意してください。
プライマリ・システムで、データ・ポンプを起動します。
START EXTRACT pump_1
ライブ・スタンバイ・システムで、Replicatを起動します。
START REPLICAT rep_1
次の各項では、計画外フェイルオーバーでユーザー・アクティビティを移動する方法について説明します。
この手順では次の操作を実行します。
ユーザー・アクティビティ用のライブ・スタンバイを準備します。
プライマリ・システムのすべてのトランザクションがライブ・スタンバイに適用されることを保証します。
Oracle GoldenGateをアクティブ化してライブ・スタンバイでトランザクション変更を取得します。
ユーザーをライブ・スタンバイ・システムに移動します。
ライブ・スタンバイ・システムで次の手順を実行します。
ライブ・スタンバイにユーザーを移動する手順
Replicatによってすべてのデータが証跡からデータベースに適用されたことを確認するため、EOF(ファイルの終わり)に到達した
ことを示すメッセージが戻されるまで、STATUS REPLICAT
コマンドを発行します。
STATUS REPLICAT rep_1
Replicatプロセスを停止します。
STOP REPLICAT rep_1
ビジネス・アプリケーションのユーザーに挿入、更新および削除権限を付与するスクリプトを実行します。
トリガーおよびカスケード削除制約を有効化するスクリプトを実行します。
アプリケーション・サーバーをフェイルオーバーし、アプリケーションを起動して、レプリケーション環境に含まれない必須ファイルをコピーするスクリプトを実行します。
ライブ・スタンバイでプライマリExtractプロセスを起動します。
START EXTRACT ext_2
スタンバイ・システムにユーザーを移動して、作業を開始させます。
注意: スタンバイでデータ・ポンプ・グループを起動しないでください。ユーザー・トランザクションは、ユーザー・アクティビティをプライマリ・システムに戻すまで、同じ場所で蓄積する必要があります。 |
この手順では次の操作を実行します。
Oracle GoldenGate環境をリカバリします。
リストアしたプライマリ・システムにライブ・スタンバイのデータをコピーします。
コピーの作成中に発生したユーザー・トランザクションを伝播します。
コピーの結果と伝播された変更とを調整します。
ユーザーをスタンバイ・システムからリストアしたプライマリ・システムに移動します。
ライブ・スタンバイを再度保持するためにレプリケーションを準備します。
プライマリ・システムのリカバリの完了後に、次の手順を実行します。
ソースOracle GoldenGate環境をリカバリする手順
プライマリ・システムで、バックアップからOracle GoldenGateディレクトリをリカバリします。
プライマリ・システムで、GGSCIを実行します。
プライマリ・システムで、プライマリExtractグループを削除します。
DELETE EXTRACT ext_1
プライマリ・システムで、ローカル証跡を削除します。
DELETE EXTTRAIL local_trail_1
プライマリ・システムで、バックアップからリストアしたパラメータ・ファイルと一致するように同じ名前を使用して、プライマリExtractグループを再度追加します。説明上、このグループをext_1と呼びます。この手順によって、Extractのチェックポイントが障害前の状態からクリーンな状態に初期化されます。
ADD EXTRACText_1
, {TRANLOG | INTEGRATED TRANLOG}, BEGINtime
[, THREADSn
]
TRANLOG
およびINTEGRATED TRANLOG
については、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。INTEGRATED TRANLOG
により、Oracleデータベースに対する統合キャプチャが可能になります。
プライマリ・システムで、前と同じ名前を使用してローカル証跡を再度追加します。説明上、この証跡をlocal_trail_1と呼びます。
ADD EXTTRAILlocal_trail_1
, EXTRACText_1
EXTRACT
では、この証跡に書込みを行うext_1グループを指定します。
プライマリ・システムで、Managerプロセスを起動します。
START MANAGER
スタンバイからプライマリ・システムにデータベースをコピーする手順
プライマリ・システムで、トリガーおよびカスケード削除制約を無効化するスクリプトを実行します。
スタンバイ・システムで、データベースのホット・コピーの作成を開始します。
スタンバイ・システムで、コピーが終了したときの時刻を記録します。
スタンバイ・システムで、アプリケーションへのユーザー・アクセスを停止します。すべてのオープン・トランザクションの完了を待機します。
コピー中に作成されたデータ変更を伝播する手順
プライマリ・システムで、Replicatを起動します。
START REPLICAT rep_2
ライブ・スタンバイ・システムで、データ・ポンプを起動します。この操作によって、蓄積されたユーザー・トランザクションをスタンバイからプライマリ・システムの証跡に転送します。
START EXTRACT pump_2
プライマリ・システムで、初期ロード中にユーザーがスタンバイ・システムで生成したすべてのデータ変更が適用されたとわかるまで、INFO REPLICAT
コマンドを発行します。前に記録した時刻を参照してください。たとえば、コピーが12:05に停止した場合、変更のレプリケーションによってその時刻までデータが適用されていることを確認します。
INFO REPLICAT rep_2
プライマリ・システムで、次のコマンドを発行してHANDLECOLLISIONS
パラメータをオフにし、初期ロードのエラー処理を無効化します。
SEND REPLICAT rep_2
, NOHANDLECOLLISIONS
プライマリ・システムで、Replicatによってすべてのデータが証跡からデータベースに適用されたことを確認するため、EOF(ファイルの終わり)に到達した
ことを示すメッセージが戻されるまで、STATUS REPLICAT
コマンドを発行します。
STATUS REPLICAT rep_2
ライブ・スタンバイ・システムで、データ・ポンプを停止します。この操作によって、ユーザー・トランザクションをスタンバイからプライマリ・システムの証跡に転送することを停止します。
STOP EXTRACT pump_2
プライマリ・システムで、Replicatプロセスを停止します。
STOP REPLICAT rep_2
この時点で、プライマリ・データベースとスタンバイ・データベースは、同期状態に戻っていることが必要です。
(オプション)同期を検証する手順
Oracle GoldenGate Veridataなどの比較ツールを使用して、ソース・データベースとスタンバイ・データベースの同等性について比較します。
Oracle GoldenGate Veridataなどの修復ツールを使用して、非同期状態を修復します。
プライマリ・システムにユーザーを切り替える手順
プライマリ・システムで、ビジネス・アプリケーションのユーザーに挿入、更新および削除権限を付与するスクリプトを実行します。
プライマリ・システムで、トリガーおよびカスケード削除制約を有効化するスクリプトを実行します。
プライマリ・システムで、アプリケーション・サーバーをフェイルオーバーし、アプリケーションを起動して、レプリケーション環境に含まれない必須ファイルをコピーするスクリプトを実行します。
プライマリ・システムで、プライマリExtractプロセスを起動します。
START EXTRACT ext_1
プライマリ・システムで、アプリケーションへのユーザー・アクセスを許可します。