この記事では、CDBとPDBのメディア障害からの復旧方法とフラッシュバックデータベースについて解説します。
メディア障害からの復旧
マルチテナント環境でのメディア障害からの復旧における基本的な考え方は非CDBと同様です。
- ARCHIVELOGモードの使用が推奨される
- NOARCHIVELOGモードでは所外直前の状態に復旧できないため、CDB全体をバックアップ取得時の状態に戻すことになる
データファイル障害とリカバリ
ARCHIVELOGモードの場合、バックアップをリストアした後でリカバリを実行することで、障害発生直前の状態に復旧できます。RMANコマンドの観点では、RESTOREコマンドの実行後にRECOVERコマンドを実行する形となります。
フラッシュバックデータベース
マルチテナント環境では、フラッシュバックデータベースをCDB全体およびPDBの2つのレベルで実行できます。
CDB全体のフラッシュバックアップデータベースは、CDB全体を過去の特定の時点に戻す機能です。
PDBのフラッシュバックデータベースは、「対象のPDBのみ」を過去の特定の時点に戻す機能です。
本記事では「PDBのフラッシュバックデータベース」について説明します。
以下で解説する内容はローカルUNDOモードを前提とします。共有UNDOモードでのPDBフラッシュバックデータベースについては後述します。
PDBのフラッシュバックデータベース
PDBに対してフラッシュバックデータベースを実行すると、対象のPDBのみが過去の特定の時点に戻ります。
PDBのフラッシュバックデータベースの実行
PDBに対してフラッシュバックデータベースを実行するには、CDBルートまたは対象PDBに接続してRMANのFLASHBACK PLUGGABLE DATABASEコマンドを実行します。
FLASHBACK PLUGGABLE DATABASE <PDB 名><復旧ターゲット>;
マルチテナント環境でのrestoreポイント
リストアポイントは、SCNに対して付けられた名前のことです。マルチテナント環境では、CDB全体およびPDBの2つのレベルでリストアポイントを作成できます。
CDBリストアポイント
CDB全体で有効なリストアポイントのことを「CDBリストアポイント」と呼びます。
CDBリストアポイントを作成するにはCDBルートで以下の文を実行します。
CREATE RESTORE POINT <リストアポイント名>;
PDBリストアポイント
特定のPDBで有効なリストアポイントを「PDBリストアポイント」と呼びます。PDBリストアポイントは対象のPDBおよびCDBルートで作成できます。
共有UNDOモードでのPDBフラッシュバックデータベース
共有UNDOモードにおけるPDBフラッシュバックデータベースは、前節で説明したローカルなUNDOモードにおけるPDBフラッシュバックデータベースと異なる動作となります。
クリーンPDBリストアポイントとPDBフラッシュバックデータベース
クリーンPDBリストアポイントとは、PDBがクロースされていて、そのPDBに未処理のトランザクションが存在しないと金に作成されるリストアポイントです。
クリーンリストアポイントを作成するには以下の文を実行します。
CREATE CLEAN RESTORE POINT <リストアポイント名>;
共有UNDOモードでのPDBフラッシュバックデータベースの留意点
- CDBルートに接続してRMANのFLASHBACK PLUGGABLE DATABASEコマンドを実行する必要がある
- SQLのFLASHBACK DATABASE文を使用する場合、復旧ターゲットに指定できるのはクリーンPDBリストアポイントのみ