プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

FLASHBACK DATABASE

用途

FLASHBACK DATABASE文を使用すると、データベースを過去の時点またはシステム変更番号(SCN)まで戻すことができます。この文を使用すると、データベースの不完全リカバリと同じ操作をより高速に実行できます。

FLASHBACK DATABASE操作の後、フラッシュバックされたデータベースに書込みアクセスするためには、ALTER DATABASE OPEN RESETLOGS文によってそのデータベースを再オープンする必要があります。


関連項目:

FLASHBACK DATABASEの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

前提条件

SYSDBAシステム権限が必要です。高速リカバリ領域をデータベースに設定しておく必要があります。また、データベースを保証付きリストア・ポイントにフラッシュバックするのでなければ、ALTER DATABASE FLASHBACK ON文を使用して、データベースをFLASHBACKモードにしておく必要があります。データベースは、マウントされているがオープンされていない状態であることが必要です。また、次のことも必要です。

  • データベースは、ARCHIVELOGモードで実行されている必要があります。

  • データベースは、現行の制御ファイルとともにマウントされている必要がありますが、オープンされている必要はありません。制御ファイルは、バックアップおよび再作成することはできません。データベース制御ファイルがバックアップからリストアされるか、または再作成されると、既存のすべてのフラッシュバック・ログ情報は廃棄されます。

  • データベースには、SQL文ALTER TABLESPACE ... FLASHBACK OFFを使用して、フラッシュバック機能が使用禁止にされたオンライン表領域は含めないでください。


関連項目:

  • データベースをFLASHBACKモードにする方法については、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』および「ALTER DATABASE」のflashback_mode_clauseを参照してください。

  • リストア・ポイントおよび保証付きリストア・ポイントの詳細は、「CREATE RESTORE POINT」を参照してください。


構文

flashback_database::=

flashback_database.gifの説明が続きます。
図「flashback_database.gif」の説明

セマンティクス

FLASHBACK DATABASE文を発行すると、最初に、必要なすべてのアーカイブREDOログおよびオンラインREDOログが使用可能であるかどうかが確認されます。これらのログが使用可能な場合、データベース内で現在オンラインになっているすべてのデータファイルが、この文に指定したSCNまたは時刻まで戻されます。

  • データベースに保持されるフラッシュバック・データの量は、DB_FLASHBACK_RETENTION_TARGET初期化パラメータおよび高速リカバリ領域のサイズによって制御されます。V$FLASHBACK_DATABASE_LOGビューを問い合せることによって、どの時点までデータベースをフラッシュバックできるかを判断できます。

  • フラッシュバックを実行するために十分なデータがデータベースに残っていない場合、標準のリカバリ手順によってデータベースを過去のある時点の状態にリカバリできます。

  • 一連のデータファイルに十分なデータが残っていない場合、エラーが戻されます。その場合、それらのデータファイルをオフラインにし、この文を再実行してデータベースの残りのデータファイルをリカバリできます。その後、標準のリカバリ手順を使用して、オフラインにしたデータファイルをリカバリできます。


関連項目:

データファイルのリカバリの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

STANDBY

STANDBYを指定すると、スタンバイ・データベースを以前のSCNまたは時点まで戻すことができます。スタンバイ・データベースではない場合、エラーが戻されます。この句を省略すると、databaseには、プライマリ・データベースまたはスタンバイ・データベースのどちらでも指定できます。


関連項目:

スタンバイ・データベースでFLASHBACK DATABASEを使用して複数の遅延を実現する方法については、『Oracle Data Guard概要および管理』を参照してください。

TO SCN句

システム変更番号(SCN)を指定します。

  • TO SCNでは、指定したSCNの状態にデータベースが戻されます。

  • TO BEFORE SCNでは、指定したSCNの直前のSCNの状態にデータベースが戻されます。

現行のSCNを判断するには、V$DATABASEビューのCURRENT_SCN列を問い合せます。これによって、高リスクのバッチ・ジョブを実行する前などに、SCNをスプール・ファイルに保存することもできます。

TO TIMESTAMP句

有効な日時式を指定します。

  • TO TIMESTAMPでは、指定したタイムスタンプ時点の状態にデータベースが戻されます。

  • TO BEFORE TIMESTAMPでは、指定したタイムスタンプの1秒前の状態にデータベースが戻されます。

タイムスタンプには、基準の値(SYSDATEなど)からのオフセットか、またはシステム・タイムスタンプの絶対値を指定できます。

TO RESTORE POINT句

この句を使用すると、指定したリストア・ポイントにデータベースをフラッシュバックできます。フラッシュバック・データベースが使用可能になっていない場合、このFLASHBACK DATABASE文では、この句のみを指定できます。データベースのモードがFLASHBACKでない場合、前述の「前提条件」で示したように、これは、この文で指定可能な唯一の句です。

RESETLOGS

TO BEFORE RESETLOGSを指定すると、データベースを最後のリセットログ操作(ALTER DATABASE OPEN RESETLOGS)の直前の状態にフラッシュバックできます。


関連項目:

この句の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

データベースに高速リカバリ領域が設定してあり、メディア・リカバリが使用可能になっていると想定します。次の文は、データベースのFLASHBACKモードを有効にして、データベースをオープンします。

STARTUP MOUNT 
ALTER DATABASE FLASHBACK ON;
ALTER DATABASE OPEN;

次の文は、データベースを1日以上オープンしていた場合、データベースを1日フラッシュバックします。

SHUTDOWN DATABASE
STARTUP MOUNT 
FLASHBACK DATABASE TO TIMESTAMP SYSDATE-1;