用途
CREATE RESTORE POINT文を使用すると、リストア・ポイント(タイムスタンプまたはデータベースのSCNに関連付けられた名前)を作成できます。リストア・ポイントを使用すると、リストア・ポイントで指定された時点に表またはデータベースをフラッシュバックできるため、SCNまたはタイムスタンプかを判断する必要がありません。リストア・ポイントは、バックアップやデータベースの複製など、様々なRMAN操作でも有効です。RMANを使用して、アーカイブ・バックアップの実装プロセスにリストア・ポイントを作成できます。
| 関連項目: 
 | 
前提条件
通常のリストア・ポイントを作成するには、SELECT ANY DICTIONARY、FLASHBACK ANY TABLE、SYSDBA、SYSBACKUP、SYSDGシステム権限が必要です。保証付きリストア・ポイントを作成するには、SYSDBA、SYSBACKUP、またはSYSDGシステム権限が必要です。
リストア・ポイントを表示または使用するには、SELECT ANY DICTIONARYまたはFLASHBACK ANY TABLE、SYSDBA、SYSBACKUP、またはSYSDGのいずれかのシステム権限か、SELECT_CATALOG_ROLEロールが必要です。
リストア・ポイントは、プライマリ・データベースまたはスタンバイ・データベースに作成できます。データベースは、オープンされている状態でも、マウントされているがオープンされていない状態でもかまいません。データベースがマウントされている場合、それがフィジカル・スタンバイ・データベースでなければ、整合性を保持して停止されてからマウントされている必要があります。
保証付きリストア・ポイントを作成する場合は、その前に、高速リカバリ領域を作成しておく必要があります。フラッシュバック・データベースを使用可能にしておかなくても、リストア・ポイントは作成できます。保証付きリストア・ポイントを作成する場合、データベースはARCHIVELOGモードになっていることが必要です。
セマンティクス
restore_point
リストア・ポイントの名前を指定します。名前は、最大128文字の文字値です。
データベースには、2048個以上の通常のリストア・ポイントを保持できます。通常のリストア・ポイントは、少なくとも初期化パラメータCONTROL_FILE_RECORD_KEEP_TIMEで指定された日数はデータベース内に保持されます。そのパラメータのデフォルト値は7日です。保証付きのリストア・ポイントは、ユーザーが明示的に削除するまでデータベース内に保持されます。
PRESERVEもGUARANTEE FLASHBACK DATABASEも指定しない場合、結果のリストア・ポイントによって、DB_FLASHBACK_RETENTION_TARGET初期化パラメータで設定された期間内のリストア・ポイントにデータベースをフラッシュバックできます。そのようなリストア・ポイントは、データベースによって自動的に管理されます。リストア・ポイントの数が、前述のrestore_pointで定められた最大数に達すると、最も古いリストア・ポイントが自動的に削除されます。一定の状況では長期バックアップのリストアに使用するために、リストア・ポイントはRMANリカバリ・カタログに保持されます。DROP RESTORE POINT文を使用して、リストア・ポイントを明示的に削除することもできます。
AS OF句
この句を使用すると、過去の指定した日時またはSCNでリストア・ポイントを作成できます。TIMESTAMPを指定する場合、exprは過去の日時となる有効な日時式である必要があります。SCNを指定する場合、exprは過去のデータベースの有効なSCNである必要があります。どちらの場合にも、exprはデータベースの現行のインカネーションの日時またはSCNを参照する必要があります。
PRESERVEを指定すると、リストア・ポイントを明示的に削除する必要があることを指定できます。このようなリストア・ポイントは、フラッシュバック・データベースを保持するのに有効です。
GUARANTEE FLASHBACK DATABASE
保証付きリストア・ポイントの場合、初期化パラメータDB_FLASHBACK_RETENTION_TARGETの設定とは無関係に、データベースをリストア・ポイントに確定的にフラッシュバックできます。フラッシュバック機能が保証されるかどうかは、高速リカバリ領域に十分な使用可能スペースがあるかどうかによって決まります。
保証付きリストア・ポイントで保証されるのは、データベースを保証付きリストア・ポイントにフラッシュバックするのに十分なフラッシュバック・ログが、データベースに保持されるということのみです。すべての表を同じリストア・ポイントにフラッシュバックするのに十分なUNDOがデータベースに保持されるかどうかは保証されません。
保証付きリストア・ポイントは、常に保存されます。DROP RESTORE POINT文を使用してユーザーが明示的に削除する必要があります。このリストア・ポイントは、期限切れになることはありません。保証付きリストア・ポイントは、高速リカバリ領域内の領域を大量に使用する場合があります。このため、保証付きリストア・ポイントは十分に検討したうえで作成することをお薦めします。
例
リストア・ポイントを作成して使用する例: 次の例では、通常のリストア・ポイントを作成し、表を更新してから、変更した表をリストア・ポイントにフラッシュバックします。この例は、ユーザーhrがそれぞれの文を使用する適切なシステム権限を持っていることを前提としています。
CREATE RESTORE POINT good_data;
SELECT salary FROM employees WHERE employee_id = 108;
    SALARY
----------
     12000
UPDATE employees SET salary = salary*10
   WHERE employee_id = 108;
SELECT salary FROM employees
   WHERE employee_id = 108;
    SALARY
----------
    120000
COMMIT;
FLASHBACK TABLE employees TO RESTORE POINT good_data;
SELECT salary FROM employees
   WHERE employee_id = 108;
    SALARY
----------
     12000