データ障害は、ディスクやファイルの破損だけが原因ではありません。表のご削除といった人為的ミスによる損失もかなりの確率で起こります。
人為的ミス、人為的エラーによって、失われたデータは、Oracleデータベースに用意されているフラッシュバック機能を使うことで、短時間のうちにリカバリができます。
さまざまなフラッシュバック機能があります。特にフラッシュバック表、フラッシュバックドロップの2種類は、しっかりと習得しましょう。
■フラッシュバック表の特徴
フラッシュバック表は、バックアップをリストアすることなく、表を過去のある時点までリカバリすることができる機能です。
フラッシュバック表の機能を使うと、表の行を誤って追加削除してしまった場合、論理的なデータ破損から表をリカバリすることができます。
フラッシュバック表の特徴は下記の通りです。
・バックアップをリストアしないので、他のデータベースオブジェクトにはなんの影響も与えない
・データベースをオープン状態のまま(使用可能なまま)で処理を実行できる
・フラッシュバック表に使用するデータは、UNDO表領域から取り出される。
・データベース管理者に依頼すること無く、ユーザ自身が自分でフラッシュバック表の機能を実行できる。
フラッシュバック表を使用するためには、下記のシステム権限とオブジェクト権限が必要となります。
種類 | 必要な権限 |
---|---|
システム権限 | FLASHBACK TABLE FLASHBACK ANY TABLE |
オブジェクト権限 | SELECT INSERT DELETE ALTER |
■表での行移動の有効化
フラッシュバック表を実行するには、事前に次のSQL文を実行して、対象の表に対する行移動を有効にする必要がある。
ALTER TABLE スキーマ名.表名 ENABLE ROW MOVEMENT;
■フラッシュバック表の実行
フラッシュバック表の実行前の状態を確認した上で、フラッシュバック表を実行して、どのように動作するのかを確認する。