| Oracle Data Guard 概要および管理 11gリリース1(11.1) E05755-03 |
|
この章では、REDOデータをスタンバイ・データベースに適用する方法について説明します。この章は、次の項目で構成されています。
適用サービスは、スタンバイ・データベースにREDOを自動的に適用して、プライマリ・データベースとの同期を維持します。また、データに対するトランザクションの一貫性のあるアクセスを可能にします。
デフォルトでは、適用サービスはいっぱいになったアーカイブREDOログ・ファイルがスタンバイ・データベースで受信されるのを待機してから、スタンバイ・データベースに適用します。ただし、スタンバイREDOログを使用している場合は、リアルタイム適用を使用可能にできます。リアルタイム適用により、Data Guardでは、現在のスタンバイREDOログ・ファイルがいっぱいになったときに、現在のスタンバイREDOログ・ファイルからREDOデータをリカバリできます。リアルタイム適用の詳細は、7.2.1項を参照してください。
適用サービスは、次の方法でフィジカル・スタンバイ・データベースとロジカル・スタンバイ・データベースをメンテナンスします。
メディア・リカバリを使用して、プライマリ・データベースとフィジカル・スタンバイ・データベースの同期を維持します。
プライマリ・データベースから受信したREDOに基づいてSQL文を再構成し、そのSQL文をロジカル・スタンバイ・データベースに対して実行します。
ロジカル・スタンバイ・データベースは読取り/書込みモードでオープンできますが、レポート生成のためにロジカル・スタンバイ・データベースでメンテナンスされているターゲット表は読取り専用モードでオープンします(データベース・ガードが適切に設定されている場合)。SQL Applyを使用すると、SQL文が適用されている間でも、ロジカル・スタンバイ・データベースをレポート・アクティビティで使用できます。
この章の各項では、REDO Apply、SQL Apply、リアルタイム適用および適用の遅延について詳細に説明します。
この項は、次の項目で構成されています。
リアルタイム適用機能が使用可能になっている場合、適用サービスでは、現在のスタンバイREDOログ・ファイルがアーカイブされるのを待機せずにREDOデータを受信したときに、REDOデータを適用できます。これにより、スイッチオーバーおよびフェイルオーバーが高速化されます。これは、フェイルオーバーまたはスイッチオーバーが開始されるまでに、スタンバイREDOログ・ファイルがスタンバイ・データベースにすでに適用されているためです。
次のように、ALTER DATABASE文を使用して、リアルタイム適用機能を使用可能にします。
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE文を発行します。
ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE文を発行します。
リアルタイム適用を使用するには、スタンバイREDOログ・ファイルが必要です。
図7-1に、ローカル宛先とスタンバイ宛先があるData Guard構成を示します。リモート・ファイル・サーバー(RFS)プロセスは、スタンバイ・データベース上のスタンバイREDOログ・ファイルにREDOデータを書き込むため、適用サービスでは、いっぱいになったときにスタンバイREDOログ・ファイルからREDOをリカバリできます。
プライマリ・サイトからREDOデータを受信した後、そのREDOデータをスタンバイ・データベースに適用するまでの間にタイム・ラグを作成することが必要な場合があります。時間間隔(分単位)を指定すると、破損したデータや誤ったデータがスタンバイ・サイトに適用されるのを防止できます。DELAY間隔を設定すると、スタンバイ・データベースへのREDOデータの転送が遅延することはありません。かわりに、指定したタイム・ラグは、REDOデータがスタンバイ宛先で完全にアーカイブされたときに開始します。
LOG_ARCHIVE_DEST_n初期化パラメータのDELAY=minutes属性を使用してプライマリ・データベースとスタンバイ・データベースで遅延時間を設定し、スタンバイ・データベースへのアーカイブREDOログ・ファイルの適用を遅延させることができます。デフォルトでは、遅延時間は発生しません。値を指定せずにDELAY属性を指定すると、デフォルトの遅延間隔は30分になります。
次のように、指定した遅延間隔を取り消すことができます。
RECOVER MANAGED STANDBY DATABASE句のNODELAYキーワードを使用します。
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY;
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY NODELAY;
これらのコマンドにより、時間間隔が経過する前に、適用サービスで、スタンバイ・データベースへのアーカイブREDOログ・ファイルの適用が即時に開始されます。
適用遅延を設定するかわりにフラッシュバック・データベースを使用して、スタンバイ・データベースへの破損データやエラー・データの適用からリカバリできます。フラッシュバック・データベースを使用すると、スタンバイ・データベースを任意の時点まで、すばやく容易にフラッシュ・バックできます。
Data Guardとフラッシュバック・データベースの併用方法の例は第13章を、フラッシュバック・データベースを有効にして使用する方法の詳細は『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
デフォルトでは、アーカイブREDOログ・ファイルからのREDOデータが適用されます。REDO Applyを実行している場合、フィジカル・スタンバイ・データベースはリアルタイム機能を使用して、スタンバイREDOログ・ファイルがRFSプロセスによって書き込まれているときに、スタンバイREDOログ・ファイルから直接REDOを適用できます。適用サービスは、フィジカル・スタンバイ・データベースが読取り専用でオープンしているときは、REDOデータをデータベースに適用できないことに注意してください。
この項は、次の項目で構成されています。
フィジカル・スタンバイ・データベースで適用サービスを開始するには、フィジカル・スタンバイ・データベースが起動されマウントされていることを確認してから、SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE文を使用してREDO Applyを開始します。
Redo Applyをフォアグラウンド・セッションまたはバックグラウンド・プロセスとして動作するように指定し、リアルタイム適用で使用可能にすることができます。
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;
フォアグラウンド・セッションを開始すると、別のセッションでリカバリが取り消されるまで、制御がコマンド・プロンプトに戻りません。
DISCONNECTキーワードを挿入します。次に例を示します。
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
この文によって、分離されたサーバー・プロセスが起動し、即時に制御がユーザーに戻されます。管理リカバリ・プロセスがバックグラウンドでリカバリを実行している間、RECOVER文を発行したフォアグラウンド・プロセスは、他のタスクの実行を継続できます。これによって、カレントSQLセッションが切断されることはありません。
USING CURRENT LOGFILE句を含めます。次に例を示します。
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;
REDO Applyを停止するには、別のウィンドウで次のSQL文を発行します。
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
フィジカル・スタンバイ・データベースでの適用サービスのステータスを監視するには、9.5.1項を参照してください。スタンバイ・データベースは、Oracle Enterprise Managerを使用して監視することもできます。また、ビューの詳細は『Oracle Databaseリファレンス』を参照してください。
SQL Applyは、アーカイブREDOログまたはスタンバイREDOログのデータをSQL文に変換してから、そのSQL文をロジカル・スタンバイ・データベースで実行します。ロジカル・スタンバイ・データベースはオープン状態のままであるため、メンテナンスされる表は、レポート生成、要約、問合せなどの他のタスクで同時に使用できます。
この項は、次の項目で構成されています。
SQL Applyを開始するには、ロジカル・スタンバイ・データベースを起動して次の文を発行します。
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY;
ロジカル・スタンバイ・データベースでリアルタイム適用を開始して、ロジカル・スタンバイ・データベースのスタンバイREDOログ・ファイルからREDOデータを即時に適用するには、次の文に示すように、IMMEDIATEキーワードを含めます。
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
SQL Applyを停止するには、ロジカル・スタンバイ・データベースで次の文を発行します。
SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY;
この文を発行すると、SQL Applyは適用対象プロセス内の完了トランザクションがすべてコミットされるまで待機します。つまり、このコマンドを実行しても、SQL Applyプロセスが即時に停止しない場合があります。
SQL Applyを監視するには、10.3項を参照してください。スタンバイ・データベースは、Oracle Enterprise Managerを使用して監視することもできます。付録A「Data Guardのトラブルシューティング」および『Oracle Data Guard Broker』を参照してください。
|
![]() Copyright © 1999, 2008 Oracle Corporation. All Rights Reserved. |
|