FLASHBACK
DATABASE
文を使用すると、データベースを過去の時点またはシステム変更番号(SCN)まで戻すことができます。この文を使用すると、データベースの不完全リカバリと同じ操作をより高速に実行できます。
FLASHBACK
DATABASE
操作の後、フラッシュバックされたデータベースに書込みアクセスするためには、ALTER
DATABASE
OPEN
RESETLOGS
文によってそのデータベースを再オープンする必要があります。
関連項目: FLASHBACK DATABASEの詳細は、 『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』 を参照してください。 |
前提条件
SYSDBA
、SYSBACKUP
、またはSYSDG
システム権限が必要です。高速リカバリ領域をデータベースに設定しておく必要があります。また、データベースを保証付きリストア・ポイントにフラッシュバックするのでなければ、ALTER
DATABASE
FLASHBACK
ON
文を使用して、データベースをFLASHBACK
モードにしておく必要があります。データベースは、マウントされているがオープンされていない状態であることが必要です。さらに、次もあります。
データベースは、ARCHIVELOG
モードで実行されている必要があります。
データベースは、現行の制御ファイルとともにマウントされている必要がありますが、オープンされている必要はありません。制御ファイルは、バックアップおよび再作成することはできません。データベース制御ファイルがバックアップからリストアされるか、または再作成されると、既存のすべてのフラッシュバック・ログ情報は廃棄されます。
データベースには、SQL文ALTER
TABLESPACE
... FLASHBACK
OFF
を使用して、フラッシュバック機能が使用禁止にされたオンライン表領域は含めないでください。
関連項目:
|
セマンティクス
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
など)からのオフセットか、またはシステム・タイムスタンプの絶対値を指定できます。
この句を使用すると、指定したリストア・ポイントにデータベースをフラッシュバックできます。フラッシュバック・データベースが使用可能になっていない場合、このFLASHBACK
DATABASE
文では、この句のみを指定できます。データベースのモードがFLASHBACK
でない場合、前述の「前提条件」で示したように、これは、この文で指定可能な唯一の句です。
RESETLOGS
TO
BEFORE
RESETLOGS
を指定すると、データベースを最後のリセットログ操作(ALTER
DATABASE
OPEN
RESETLOGS
)の直前の状態にフラッシュバックできます。
関連項目: この句の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。 |