6 Oracle Data Guardの保護モード
Oracle Data Guardでは、様々なデータ保護モードを設定できます。
これらの保護モードと、プライマリ・データベースでこれを設定する方法については、次の各項を参照してください。
6.1 Oracle Data Guardの保護モード
Oracle Data Guardには、最大可用性、最大パフォーマンスおよび最大保護という3つの保護モードが用意されています。
保護モードについての次の説明では、同期されたスタンバイ・データベースは、構成されたデータ保護モードの最小要件を満たしている、REDOギャップがないものである必要があります。REDOギャップについては、「REDOギャップの検出および解決」で説明します。
最大可用性
この保護モードは、プライマリ・データベースの可用性を低下させない範囲で可能な最高レベルのデータ保護を提供します。通常の操作では、トランザクションは、そのトランザクションのリカバリに必要なすべてのREDOデータがオンラインREDOログに書き込まれるまで、および(構成により)次のいずれかが当てはまるまでコミットされません。
-
REDOがスタンバイで受信され、スタンバイREDOログへのI/Oが起動され、確認がプライマリに返された
-
REDOが受信され、スタンバイでスタンバイREDOログへ書き込まれ、応答がプライマリに返された
1つ以上の同期スタンバイから確認を受信できない場合、プライマリは最大パフォーマンス・モードの場合と同様に動作して、同期スタンバイ・データベースへのREDOストリームの書込みが再び可能になるまでプライマリ・データベースの可用性を維持します。
プライマリ・データベースに障害が発生した場合、このモードは、Oracle Data Guard構成で1つ以上の同期スタンバイが存在する場合に、データが消失しないことを保証します。最大可用性のサポートに必要なREDO転送設定および関連するトレードオフの詳細は、「Pe最大可用性モードでのパフォーマンス対保護」を参照してください。
Oracle Data GuardがREDOデータをスタンバイREDOログ・ファイルの永久記憶域に書き込むとすぐに、プライマリのトランザクションは保護されたものとみなされます。その後すぐにプライマリ・データベースに確認通知を戻し、次のトランザクションに進めるようにします。これによって、プライマリ・データベースでの同期転送スループットやレスポンス時間による影響を最小化できます。スタンバイ・データベースでの完全なOracle Data Guardの検証機能を最大限活用するには、必ずリアルタイムの適用モードで操作し、REDOの変更を受信と同時にスタンバイ・データベースに適用します。Oracle Data Guardは検出したすべての破損を通知するので、迅速な修正処理を実行できます。
最大可用性モードでのパフォーマンス対保護
最大可用性モードを使用するとき、ニーズに最も適した選択をすることがきるように、LOG_ARCHIVE_DEST_
n
の属性SYNC
/AFFIRM
対SYNC
/NOAFFIRM
(FastSync)を使用したことによってもたらされ得る結果を理解することが重要です。
SYNC/AFFIRM
を使用して転送が実行されると、プライマリは書込み操作を実行し、REDOがフィジカル・スタンバイに同期的に転送されてディスクに書き込まれたという応答を待ちます。SYNC/AFFIRM
を使用した転送では、スタンバイREDOログへのI/Oの完了に必要な時間によるパフォーマンスへの影響がありますが、保護上のメリットが追加されます。
SYNC/NOAFFIRM
を使用して転送が実行されると、プライマリは書込み操作を実行し、データがスタンバイで受信されたという応答のみを待ち、ディスクに書き込まれたという応答は待ちません。SYNC/NOAFFIRM
を使用した転送では、複数の障害が同時に発生する特別な場合でのデータ消失の危険性を伴いますが、パフォーマンス上のメリットがもたらされます。
これらの説明を考慮して、スタンバイ・サイトの電源喪失と同時にプライマリ・サイトで致命的な障害が発生することを想定してください。データが消失するかどうかは使用している転送モードにより決まります。SYNC/AFFIRM
の場合、データがスタンバイのディスクに書き込まれたことがチェックされ、システムが修復されたときにデータはスタンバイで使用可能なので、データ消失はありません。SYNC/NOAFFIRM
の場合、データがスタンバイのディスクに書き込まれたことは確認されず、データ消失が発生する可能性があります。
関連項目:
-
SYNC
、AFFIRM
およびNOAFFIRM
属性の詳細は、「LOG_ARCHIVE_DEST_nパラメータの属性」を参照してください。 -
FASTSYNC
モードを使用した(可用性最大モードでSYNC
およびNOAFFIRM
を一緒に使用)ブローカ構成でのREDO転送の詳細は、『Oracle Data Guard Broker』を参照してください。
最大パフォーマンス
この保護モードは、プライマリ・データベースのパフォーマンスに影響しない範囲で可能な最高レベルのデータ保護を提供します。これは、トランザクションによって生成されたすべてのREDOデータがオンライン・ログに書き込まれた直後に、そのトランザクションのコミットを可能にすることで実現されます。REDOデータは1つ以上のスタンバイ・データベースにも書き込まれますが、この書込みはトランザクションのコミットとは非同期に実行されるため、REDOデータの送信に必要な時間およびスタンバイ・データベースからの応答の受信は、プライマリ・データベースのパフォーマンスに影響を与えません。
この保護モードは、最大可用性モードに比べてデータ保護が若干弱く、プライマリ・データベースのパフォーマンスへの影響を最小限に抑えます。
これはデフォルトの保護モードです。
最大保護
最大保護は最大可用性と似ていますが、複数の失敗イベントの際により高いレベルでデータが保護されます。スタンバイ・データベースからの応答を受信できない場合でもプライマリが処理を続行できる最大可用性とは違い、最大保護では、プライマリ・データベースは停止し、保護されないトランザクションの処理は継続できません。
このデータ保護モードは、プライマリ・データベースの可用性よりもデータ保護を優先するため、2つ以上のスタンバイ・データベースを使用して、最大保護モードで稼働するプライマリ・データベースを保護し、1つのスタンバイ・データベースの障害が原因でプライマリ・データベースが停止しないようにします。
ノート:
非同期でコミットされたトランザクションは、そのトランザクションで生成されたREDOが、少なくとも1つの同期スタンバイ・データベースのスタンバイREDOログに書き込まれるまで、データ消失に対してOracle Data Guardの保護を受けません。
非同期コミット機能の詳細は、次のドキュメントを参照してください。