ヘッダーをスキップ
Oracle® Data Guard概要および管理
11gリリース2 (11.2)
B56302-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 Data Guardの保護モード

この章は次の項で構成されています。

5.1 Data Guardの保護モード

この項では、Data Guardの保護モードについて説明します。

ここでの説明では、同期化されたスタンバイ・データベースは、構成されたデータ保護モードの最低要件を満たし、REDOギャップがないデータベースとして作成されています。REDOギャップの詳細は、6.4.3項を参照してください。

最大可用性

この保護モードは、プライマリ・データベースの可用性を低下させない範囲で可能な最高レベルのデータ保護を提供します。トランザクションは、そのトランザクションのリカバリに必要なすべてのREDOデータが、オンラインREDOログおよび少なくとも1つの同期化されたスタンバイ・データベース上のスタンバイREDOログに書き込まれるまでコミットされません。プライマリ・データベースは、REDOストリームを少なくとも1つの同期化されたスタンバイ・データベースに書き込むことができない場合、REDOストリームを同期化されたスタンバイ・データベースに再び書き込めるようになるまで、最大パフォーマンス・モードにあるかのように動作してプライマリ・データベースの可用性を維持します。

このモードでは、プライマリ・データベースに障害が発生した場合、ただし、2回目の障害でプライマリ・データベースから少なくとも1つのスタンバイ・データベースにREDOデータの完全なセットが送信される場合にのみ、データが消失しないことを保証します。

最大パフォーマンス

この保護モードは、プライマリ・データベースのパフォーマンスに影響しない範囲で可能な最高レベルのデータ保護を提供します。これは、トランザクションによって生成されたすべてのREDOデータがオンライン・ログに書き込まれた直後に、そのトランザクションのコミットを可能にすることで実現されます。REDOデータは、1つ以上のスタンバイ・データベースにも書き込まれますが、トランザクション・コミットについて非同期で行われるため、プライマリ・データベースのパフォーマンスは、スタンバイ・データベースへのREDOデータの書込み遅延による影響を受けません。

この保護モードは、最大可用性モードに比べてデータ保護が若干弱く、プライマリ・データベースのパフォーマンスへの影響を最小限に抑えます。

これはデフォルトの保護モードです。

最大保護

この保護モードは、プライマリ・データベースに障害が発生した場合でも、データ消失がないことを保証します。このレベルの保護を提供するには、トランザクションがコミットされる前に、トランザクションのリカバリに必要なREDOデータを、オンラインREDOログおよび少なくとも1つの同期化されたスタンバイ・データベース上のスタンバイREDOログに書き込む必要があります。少なくとも1つの同期化されたスタンバイ・データベースにREDOストリームを書き込むことができない場合は、データ消失が発生しないように、プライマリ・データベースは停止し、トランザクションの処理を続行しません。

Data GuardがREDOデータをスタンバイREDOログ・ファイルの永久記憶域に書き込むとすぐに、プライマリのトランザクションは保護されたものとみなされます。その後すぐにプライマリ・データベースに確認通知を戻し、次のトランザクションに進めるようにします。これによって、プライマリ・データベースでの同期転送スループットやレスポンス時間による影響を最小化できます。スタンバイ・データベースでの完全なData Guardの検証機能を最大限活用するには、必ずリアルタイムの適用モードで操作し、REDOの変更を受信と同時にスタンバイ・データベースに適用します。Data Guardは検出したすべての破損を通知するので、迅速な修正処理を実行できます。

このデータ保護モードは、プライマリ・データベースの可用性よりもデータ保護を優先するため、2つ以上のスタンバイ・データベースを使用して、最大保護モードで稼働するプライマリ・データベースを保護し、1つのスタンバイ・データベースの障害が原因でプライマリ・データベースが停止しないようにします。


注意:

非同期でコミットされたトランザクションは、そのトランザクションで生成されたREDOが、少なくとも1つの同期スタンバイ・データベースのスタンバイREDOログに書き込まれるまで、データ消失に対してData Guardの保護を受けません。

非同期コミット機能の詳細は、次のドキュメントを参照してください。

  • 『Oracle Database概要』

  • 『Oracle Database SQL言語リファレンス』

  • 『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』

  • 『Oracle Database PL/SQL言語リファレンス』


5.2 プライマリ・データベースのデータ保護モードの設定

次の手順を実行して、プライマリ・データベースのデータ保護モードを設定します。

手順1   可用性、パフォーマンスおよびデータ保護の要件を満たすデータ保護モードを選択する

データ保護モードの詳細は、5.1項を参照してください。

手順2   少なくとも1つのスタンバイ・データベースが、必要なデータ保護モードの転送要件を満たしていることを検証する

少なくとも1つのスタンバイ・データベースに対応するLOG_ARCHIVE_DEST_nデータベース初期化パラメータには、表5-1にリストされている、必要なデータ保護モードに対応するREDO転送属性が含まれている必要があります。

また、スタンバイ・データベースにはスタンバイREDOログが必要です。

REDO転送およびスタンバイREODログの構成の詳細は、第6章「REDO転送サービス」を参照してください。

表5-1 データ保護モードに対するREDO転送の必須属性

最大可用性 最大パフォーマンス 最大保護

AFFIRM

NOAFFIRM

AFFIRM

SYNC

ASYNC

SYNC

DB_UNIQUE_NAME

DB_UNIQUE_NAME

DB_UNIQUE_NAME


手順3   プライマリ・データベースおよび各スタンバイ・データベースでDB_UNIQUE_NAMEデータベース初期化パラメータが一意の値に設定されていることを確認する
手順4   LOG_ARCHIVE_CONFIGデータベース初期化パラメータがプライマリ・データベースおよび各スタンバイ・データベースに定義されていて、プライマリ・データベースおよび各スタンバイ・データベースのDB_UNIQUE_NAMEを含むDG_CONFIGリストが、その値に指定されていることを確認する

たとえば、LOG_ARCHIVE_CONFIGパラメータの構成には、次のSQL文が使用されることがあります。

SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(CHICAGO,BOSTON)';
手順5   データ保護モードを設定する

次のSQL文はプライマリ・データベースで実行します。

SQL> ALTER DATABASE -
> SET STANDBY DATABASE TO MAXIMIZE {AVAILABILITY | PERFORMANCE | PROTECTION};

オープン状態のデータベースでデータ保護モードをMAXIMUM PROTECTIONに設定できるのは、現在のデータ保護モードがMAXIMUM AVAILABILITYで、同期されているスタンバイ・データベースが少なくとも1つある場合のみです。

手順6   プライマリ・データベースが新しい保護モードで動作していることを確認する

次の問合せをプライマリ・データベースで実行し、新しい保護モードで動作していることを確認します。

SQL> SELECT PROTECTION_MODE FROM V$DATABASE;