CREATE RESTORE POINT

目的

CREATE RESTORE POINT文を使用すると、リストア・ポイント(タイムスタンプまたはデータベースのSCNに関連付けられた名前)を作成できます。リストア・ポイントを使用すると、リストア・ポイントで指定された時点に表またはデータベースをフラッシュバックできるため、SCNまたはタイムスタンプかを判断する必要がありません。リストア・ポイントは、バックアップやデータベースの複製など、様々なRMAN操作でも有効です。RMANを使用して、アーカイブ・バックアップの実装プロセスにリストア・ポイントを作成できます。

関連項目:

前提条件

通常のリストア・ポイントを作成するには、SELECT ANY DICTIONARYFLASHBACK ANY TABLESYSDBASYSBACKUPSYSDGシステム権限が必要です。

保証付きリストア・ポイントを作成するには、次の条件のうち1つを満たしている必要があります。

  • AS SYSDBAAS SYSBACKUPまたはAS SYSDGを接続する必要があります。

  • SYSDBA権限が付与されており、マルチテナント・データベースを使用している必要があります。

  • ユーザーSYSとして実行しており、マルチテナント・データベースを使用している必要があります。

リストア・ポイントを表示または使用するには、SELECT ANY DICTIONARYまたはFLASHBACK ANY TABLESYSDBASYSBACKUP、またはSYSDGのいずれかのシステム権限か、SELECT_CATALOG_ROLEロールが必要です。

リストア・ポイントは、プライマリ・データベースまたはスタンバイ・データベースに作成できます。データベースは、オープンされている状態でも、マウントされているがオープンされていない状態でもかまいません。データベースがマウントされている場合、それがフィジカル・スタンバイ・データベースでなければ、整合性を保持して停止されてからマウントされている必要があります。

保証付きリストア・ポイントを作成する場合は、その前に、高速リカバリ領域を作成しておく必要があります。保証付きリストア・ポイントを作成する前に、フラッシュバック・データベースを使用可能にする必要はありません。保証付きリストア・ポイントを作成する場合、データベースはARCHIVELOGモードになっていることが必要です。

通常のリストア・ポイントを作成する前にフラッシュバック・データベースを有効にする必要はありません。通常のリストア・ポイントにはFLASHBACK DATABASE以外のアプリケーションがあるためです。ただし、通常のリストア・ポイントに対してFLASHBACK DATABASEを実行する場合は、通常のリストア・ポイントを作成する前にフラッシュバック・データベースを有効にしておく必要があります。

マルチテナント・コンテナ・データベース(CDB)に接続しているときに、次のようにリストア・ポイントを作成、使用または表示できます。

  • 通常のCDBリストア・ポイントを作成するには、現在のコンテナがルートである必要があります。また、SELECT ANY DICTIONARYまたはFLASHBACK ANY TABLEシステム権限(共通に付与されている権限か、ルートでローカルに付与されている権限のいずれか)または共通に付与されているSYSDBASYSBACKUPまたはSYSDGシステム権限が必要です。

  • 保証されたCDBリストア・ポイントを作成する場合は、現在のコンテナがルートである必要があります。また、共通に付与されているSYSDBASYSBACKUPまたはSYSDGシステム権限が必要です。

  • CDBリストア・ポイントを表示するには、現在のコンテナがルートである必要があり、SELECT ANY DICTIONARYまたはFLASHBACK ANY TABLEシステム権限またはSELECT_CATALOG_ROLEロール(共通に付与されているか権限/ロールか、ルートでローカルに付与されている権限/ロールのいずれか)、または共通に付与されているSYSDBASYSBACKUPまたはSYSDGシステム権限が必要であるか、あるいは現在のコンテナがPDBである必要があり、SELECT ANY DICTIONARYFLASHBACK ANY TABLESYSDBASYSBACKUPまたはSYSDGシステム権限(共通に付与されている権限か、そのPDBでローカルに付与されている権限のいずれか)が必要です。

  • CDBリストア・ポイントを使用するには、SELECT ANY DICTIONARYまたはFLASHBACK ANY TABLEシステム権限またはSELECT_CATALOG_ROLEロール(共通に付与されている権限/ロールか、ルートでローカルに付与されている権限/ロールのいずれか)または共通に付与されているSYSDBASYSBACKUPまたはSYSDGシステム権限が必要です。

  • 通常のPDBリストア・ポイントを作成するには、現在のコンテナがルートである必要があり、SELECT ANY DICTIONARYまたはFLASHBACK ANY TABLEシステム権限(共通に付与されているか権限か、ルートでローカルに付与されている権限のいずれか)、または共通に付与されているSYSDBASYSBACKUPまたはSYSDGシステム権限が必要であるか、または現在のコンテナがリストア・ポイントを作成するPDBである必要があり、SELECT ANY DICTIONARYFLASHBACK ANY TABLESYSDBASYSBACKUPまたはSYSDGシステム権限(共通に付与されている権限か、そのPDBでローカルに付与されている権限)が必要です。

  • 保証されたPDBリストア・ポイントを作成するには、現在のコンテナがルートである必要があり、共通に付与されているSYSDBASYSBACKUPまたはSYSDGシステム権限が必要であるか、または現在のコンテナがリストア・ポイントを作成するPDBである必要があり、SYSDBASYSBACKUPまたはSYSDGシステム権限(共通に付与されている権限か、そのPDBでローカルに付与されている権限)が必要です。

  • PDBリストア・ポイントを表示するには、現在のコンテナがルートである必要があり、SELECT ANY DICTIONARYまたはFLASHBACK ANY TABLEシステム権限またはSELECT_CATALOG_ROLEロール(共通に付与されているか権限/ロールか、ルートでローカルに付与されている権限/ロールのいずれか)、または共通に付与されているSYSDBASYSBACKUPまたはSYSDGシステム権限が必要であるか、または現在のコンテナがリストア・ポイントのPDBである必要があり、SELECT ANY DICTIONARYFLASHBACK ANY TABLESYSDBASYSBACKUPまたはSYSDGシステム権限(共通に付与されている権限か、そのPDBでローカルに付与されている権限のいずれか)が必要です。

  • PDBリストア・ポイントを使用するには、現在のコンテナがリストア・ポイントのPDBである必要があります。また、SELECT ANY DICTIONARYFLASHBACK ANY TABLESYSDBASYSBACKUPまたはSYSDGシステム権限(共通に付与されている権限か、そのPDBでローカルに付与されている権限)が必要です。

構文

create_restore_point::=

セマンティクス

CLEAN

CLEANは、PDBリストア・ポイントを作成する際にのみ指定できます。PDBは共有UNDOを使用する必要があり、未処理のトランザクションがない状態でクローズする必要があります。共有UNDOを使用してPDBをフラッシュバックしてPDBリストア・ポイントをクリーンにする場合、バックアップをリストアしたりクローン・インスタンスを作成する必要はありません。このため、共有UNDOを使用してPDBをSCNまたは他のタイプのリストア・ポイントにフラッシュバックするよりも高速です。

restore_point

リストア・ポイントの名前を指定します。名前は、「データベース・オブジェクトのネーミング規則」に指定されている要件を満たしている必要があります。

マルチテナント環境では、CDBとPDBはリストア・ポイント用の独自のネームスペースを持ちます。このため、CDBおよび各PDBは同じ名前のリストア・ポイントを持つことがあります。PDB内でまたはPDB操作でリストア・ポイント名を指定すると、最初に名前が当該PDBのPDBリストア・ポイントとして解釈されます。指定された名前のPDBリストア・ポイントが見つからない場合、CDBリストア・ポイントとして解釈されます。

データベースには、2048個以上の通常のリストア・ポイントを保持できます。マルチテナント環境では、CDBはCDB全体で少なくとも2048の通常のリストア・ポイント(PDBリストア・ポイントを含む)を保持できます。通常のリストア・ポイントは、少なくとも初期化パラメータCONTROL_FILE_RECORD_KEEP_TIMEで指定された日数はデータベース内に保持されます。そのパラメータのデフォルト値は7日です。保証付きのリストア・ポイントは、ユーザーが明示的に削除するまでデータベース内に保持されます。

PRESERVEGUARANTEE FLASHBACK DATABASEも指定しない場合、結果のリストア・ポイントによって、DB_FLASHBACK_RETENTION_TARGET初期化パラメータで設定された期間内のリストア・ポイントにデータベースをフラッシュバックできます。そのようなリストア・ポイントは、データベースによって自動的に管理されます。リストア・ポイントの数が、前述のrestore_pointで定められた最大数に達すると、最も古いリストア・ポイントが自動的に削除されます。一定の状況では長期バックアップのリストアに使用するために、リストア・ポイントはRMANリカバリ・カタログに保持されます。DROP RESTORE POINT文を使用して、リストア・ポイントを明示的に削除することもできます。

FOR PLUGGABLE DATABASE

この句を使用すると、ルートに接続されている場合にPDBリストア・ポイントを作成できます。pdb_nameには、PDBの名前を指定します。

リストア・ポイントを作成するPDBに接続されている場合、この句を指定する必要はありません。ただし、この句を指定する場合は、接続しているPDBの名前を指定する必要があります。

AS OF句

この句を使用すると、過去の指定した日時またはSCNでリストア・ポイントを作成できます。TIMESTAMPを指定する場合、exprは過去の日時となる有効な日時式である必要があります。SCNを指定する場合、exprは過去のデータベースの有効なSCNである必要があります。どちらの場合にも、exprはデータベースの現行のインカネーションの日時またはSCNを参照する必要があります。

PRESERVE

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