8 ライブ・スタンバイ・データベース管理のためのOracle GoldenGateの構成
内容は次のとおりです。
ライブ・スタンバイ構成の概要
Oracle GoldenGateでは、アクティブ/パッシブ型の双方向構成がサポートされます。この構成では、Oracle GoldenGateによって、計画停止および計画外停止時のフェイルオーバー用に準備されたライブ・スタンバイ・システムの完全レプリカ・データベースにアクティブ・プライマリ・データベースからデータがレプリケートされます。
この構成では、ライブ・スタンバイ・システム上にアクティブではないOracle GoldenGate Extractグループとアクティブではないデータ・ポンプが存在します。どちらのグループも、スイッチオーバーまたはフェイルオーバーでライブ・スタンバイ・システムにユーザー・アプリケーションが切り替えられるまで停止されています。ユーザー・アクティビティがスタンバイに移動すると、これらのグループはローカル証跡へのトランザクションの取得を開始します。データは、プライマリ・データベースが再度使用可能になるまでディスク上に格納されます。
プライマリ・システムに障害が発生した場合、Oracle GoldenGateのManagerプロセスとReplicatプロセスは、スタンバイから取得されたデータベース・インスタンスと連携して、プライマリ・システムのリカバリ後に2つのシステム間で同等性を回復します。ユーザーは、適切な時点でプライマリ・システムに再度移動され、Oracle GoldenGate構成は将来のフェイルオーバーに備えて再び準備完了モードに戻ります。
ライブ・スタンバイ構成の考慮事項
次の各項では、ライブ・スタンバイ構成の考慮事項について説明します。
信頼できるソース
プライマリ・データベースは、信頼できるソースです。これは、通常の運用モード時にアクティブ・ソースであるデータベースで、初期同期フェーズや後続のすべての再同期時に他のデータベースの導出元になるデータベースです。信頼できるソースのデータは定期的にバックアップしてください。
親トピック: ライブ・スタンバイ構成の考慮事項
複製スタンバイ
ライブ・スタンバイのほとんどの実装では、ソース・データベースとターゲット・データベースは、内容および構造において同一です。データのマッピング、変換およびフィルタリングは、通常、この種の構成では適切な処理ではありませんが、ユーザーのビジネス・モデルで必要とされる場合、Oracle GoldenGateではこのような機能もサポートされます。これらの機能をサポートするには、TABLE
パラメータおよびMAP
パラメータのオプションを使用します。
親トピック: ライブ・スタンバイ構成の考慮事項
スタンバイ・システムでのDML
アプリケーションが対応している場合、レポートや問合せにライブ・スタンバイ・システムを使用できますが、DMLは使用できません。Oracle GoldenGate構成のオブジェクトに影響するライブ・スタンバイ・システム上にアクティブなトランザクション型アプリケーションを配置する場合、そのアプリケーションはアクティブ/アクティブ構成で設定する必要があります。詳細は、アクティブ/アクティブ型高可用性のためのOracle GoldenGateの構成を参照してください。
親トピック: ライブ・スタンバイ構成の考慮事項
Oracle GoldenGateプロセス
通常の運用モード時には、ライブ・スタンバイ・システムのプライマリExtractおよびデータ・ポンプは停止状態にし、アクティブ・ソースのReplicatも停止状態にします。この処理によって、スタンバイ・システムで誤って発生したDMLがアクティブ・ソースに伝播することを防止します。データをアクティブ・ソースからスタンバイ・システムに移動するExtract、データ・ポンプおよびReplicatのみアクティブにできます。
親トピック: ライブ・スタンバイ構成の考慮事項
バックアップ・ファイル
プライマリ・システムとスタンバイ・システムにあるOracle GoldenGateの作業ディレクトリは、定期的にバックアップしてください。このバックアップには、Oracle GoldenGateのインストール・ディレクトリのルート・レベルにインストールされているすべてのファイルと、そのディレクトリ内のすべてのサブディレクトリを含める必要があります。Oracle GoldenGate環境のバックアップを保持しておくことで、プロセス・グループおよびパラメータ・ファイルを再作成する必要がなくなります。
親トピック: ライブ・スタンバイ構成の考慮事項
フェイルオーバーの準備
プライマリ・システムとライブ・スタンバイ・システムは、計画済のスイッチオーバーまたは計画外のソース障害の発生時にユーザーが即座にアクセスできるように準備しておく必要があります。高可用性計画の次の構成要素を、各システムですぐに使用できるように準備してください。
-
挿入、更新および削除権限を付与するスクリプト。
-
ライブ・スタンバイ・システムでトリガーおよびカスケード削除制約を有効化するスクリプト。(これらは、使用中のデータベース・タイプに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントに記載された設定手順で無効になっている可能性があります。)
-
アプリケーション・サーバーをスイッチオーバーし、アプリケーションを起動して、レプリケーション環境に含まれない必須ファイルをコピーするスクリプト。
-
ソース・システムに障害が発生した場合にユーザーをライブ・スタンバイに移動するためのフェイルオーバー手順。
親トピック: ライブ・スタンバイ構成の考慮事項
データベースによって生成される順序値
データベース生成による値(Oracle順序など)がキーの一部として使用される場合、その値の範囲は、重複しないように各システムで異なっている必要があります。アプリケーションが対応している場合、値に位置識別子を追加して強制的に一意性を確保できます。
Oracle Databaseの場合、各データベースで一意性を確保しながら順序をレプリケートするようにOracle GoldenGateを構成できます。順序をレプリケートするには、SEQUENCE
パラメータおよびMAP
パラメータを使用します。詳細は、『Oracle GoldenGateリファレンス』を参照してください。
親トピック: ライブ・スタンバイ構成の考慮事項
追加情報
次のドキュメントには、Oracle GoldenGateの構成に関連する追加情報が記載されています。
-
その他のシステム要件、プロセス構成およびデータベースの設定要件については、使用中のデータベース・タイプに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントを参照してください。これらのガイドはこのマニュアルのはじめににリストされています。
-
Oracle GoldenGateの変更取得および配信グループの構成方法の詳細は、オンライン変更同期の構成を参照してください。
-
Oracle GoldenGateのその他のチューニング・オプションは、Oracle GoldenGateのパフォーマンスのチューニングを参照してください。
-
Oracle GoldenGateのコマンドとパラメータの構文の詳細および説明は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
親トピック: ライブ・スタンバイ構成の考慮事項
ライブ・スタンバイ構成の作成
作成するオブジェクトのビジュアル表現は、図8-1を参照してください。
両システムの前提条件
両方のシステムで次の前提条件を実行します。
- Replicatのチェックポイント表を作成します(Oracle統合Replicatを使用していない場合)。手順については、「チェックポイント表の作成」を参照してください
- Managerおよびネットワーク通信の構成の指示に従ってManagerプロセスを構成します。
親トピック: ライブ・スタンバイ構成の作成
アクティブ・ソースからスタンバイに対する構成
次の手順では、プライマリ・データベースからデータを取得して、それをスタンバイ・データベースにレプリケートするよう、Oracle GoldenGateを構成します。
プライマリExtractグループを構成する手順
アクティブ・ソースで次の手順を実行します。
-
ソースで、
ADD EXTRACT
コマンドを使用してExtractグループを作成します。説明上、このグループをext_1と呼びます。ADD EXTRACT
ext_1
, {TRANLOG | INTEGRATED TRANLOG}, BEGINtime
[option
[, ...]]これらのオプション、およびインストール環境によって必要になるその他の
ADD EXTRACT
オプションの詳細は、『Oracle GoldenGateリファレンス』を参照してください。 -
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
] -- 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 EXTRACT
pump_1
, EXTTRAILSOURCElocal_trail_1
, BEGINtime
EXTTRAILSOURCE
では、データソースとしてlocal_trail_1を指定します。 -
ADD RMTTRAIL
コマンドを使用して、スタンバイ・システムに作成するリモート証跡を指定します。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 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
-- Specify sequences to be captured: SEQUENCE [container
.]owner
.sequence
; -- Specify tables to be captured: TABLE [container
.]owner
.*;
Replicatグループを構成する手順
ライブ・スタンバイ・システムで次の手順を実行します。
親トピック: ライブ・スタンバイ構成の作成
スタンバイからアクティブ・ソースに対する構成
次の手順では、Oracle GoldenGateをパッシブ・モードで構成します。このモードでは、Oracle GoldenGateプロセスは、トランザクション・アクティビティをセカンダリ・システムにスイッチオーバーした後に、セカンダリ・システムからデータを取得して、それをプライマリ・データベースにレプリケートする準備はできていますが、作業は開始されません。
注意:
この手順は、これまでに作成した構成を逆にするイメージです。
プライマリExtractグループを構成する手順
ライブ・スタンバイ・システムで次の手順を実行します。
-
ソースで、
ADD EXTRACT
コマンドを使用してExtractグループを作成します。説明上、このグループをext_2と呼びます。ADD EXTRACT
ext_2
, {TRANLOG | INTEGRATED TRANLOG}, BEGINtime
[option
[, ...]]これらのオプション、およびインストール環境によって必要になるその他の
ADD EXTRACT
オプションの詳細は、『Oracle GoldenGateリファレンス』を参照してください。 TRANLOG
Extractext_2
を起動します。「データ・ループの防止」も参照してください。-
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
] -- 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 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データ・ポンプを指定します。その他の
ADD RMTTRAIL
オプションは、『Oracle GoldenGateリファレンス』を参照してください。 -
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 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
-- Specify sequences to be captured: SEQUENCE [container
.]owner
.sequence
; -- Specify tables to be captured: TABLE [container
.]owner
.*;
Replicatグループを構成する手順
アクティブ・ソースで次の手順を実行します。
計画済スイッチオーバーでのユーザー・アクティビティの移動
この手順では、データベースに影響しないシステム・メンテナンスなどの手順をプライマリ・システムで実行できるように、計画された安全な方法でユーザー・アプリケーション・アクティビティをプライマリ・データベースからライブ・スタンバイ・システムに移動します。
計画外フェイルオーバーでのユーザー・アクティビティの移動
次の各項では、計画外フェイルオーバーでユーザー・アクティビティを移動する方法について説明します。
ライブ・スタンバイへのユーザー・アクティビティの移動
この手順では次の操作を実行します。
-
ユーザー・アクティビティ用のライブ・スタンバイを準備します。
-
プライマリ・システムのすべてのトランザクションがライブ・スタンバイに適用されることを保証します。
-
Oracle GoldenGateをアクティブ化してライブ・スタンバイでトランザクション変更を取得します。
-
ユーザーをライブ・スタンバイ・システムに移動します。
ライブ・スタンバイ・システムで次の手順を実行します。
ライブ・スタンバイにユーザーを移動する手順
親トピック: 計画外フェイルオーバーでのユーザー・アクティビティの移動
プライマリ・システムへのユーザー・アクティビティの再移動
この手順では次の操作を実行します。
-
Oracle GoldenGate環境をリカバリします。
-
リストアしたプライマリ・システムにライブ・スタンバイのデータをコピーします。
-
コピーの作成中に発生したユーザー・トランザクションを伝播します。
-
コピーの結果と伝播された変更とを調整します。
-
ユーザーをスタンバイ・システムからリストアしたプライマリ・システムに移動します。
-
ライブ・スタンバイを再度保持するためにレプリケーションを準備します。
プライマリ・システムのリカバリの完了後に、次の手順を実行します。
ソースOracle GoldenGate環境をリカバリする手順
-
プライマリ・システムで、バックアップからOracle GoldenGateディレクトリをリカバリします。
-
プライマリ・システムで、GGSCIを実行します。
-
プライマリ・システムで、プライマリExtractグループを削除します。
DELETE EXTRACT
ext_1
-
プライマリ・システムで、ローカル証跡を削除します。
DELETE EXTTRAIL
local_trail_1
-
プライマリ・システムで、バックアップからリストアしたパラメータ・ファイルと一致するように同じ名前を使用して、プライマリExtractグループを再度追加します。説明上、このグループをext_1と呼びます。この手順によって、Extractのチェックポイントが障害前の状態からクリーンな状態に初期化されます。
ADD EXTRACT
ext_1
, {TRANLOG | INTEGRATED TRANLOG}, BEGINtime
[, THREADSn
]-
TRANLOG
およびINTEGRATED TRANLOG
の詳細は、『Oracle GoldenGateリファレンス』を参照してください。INTEGRATED TRANLOG
により、Oracleデータベースに対する統合キャプチャが可能になります。
-
-
プライマリ・システムで、前と同じ名前を使用してローカル証跡を再度追加します。説明上、この証跡をlocal_trail_1と呼びます。
ADD EXTTRAIL
local_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などの修復ツールを使用して、非同期状態を修復します。
プライマリ・システムにユーザーを切り替える手順
親トピック: 計画外フェイルオーバーでのユーザー・アクティビティの移動