オラクルを極める⑤!【フラッシュバック ドロップ詳細 編】

NO IMAGE

手違いで、大事なテーブルを削除したことはないでしょうか?

万が一にも、DROP TABLEしようものならDB管理者にポコポコにされてしまうでしょう。
WS000012.jpg

ですが、ORACLEの10Gからはこのような人為的なミスに対処するため、フラッシュバックという機能が追加されています。

フラッシュバック機能の一つ、フラッシュバック・ドロップを取り上げて見たいと思います。

■フラッシュバックド・ロップとは?
  ・削除した表を戻すことができる。
  ・データベースをオフラインにしなくてもよい。

■フラッシュバック・ドロップを行える条件
  ①対象テーブルのSELECT権限を持っている
  ②FLASHBACK ANY TABLEシステム権限もしくは、
   対象テーブルに対するFLASHBACKオブジェクト権限を持っている

ORACLE 10Gから削除した表を一時的に保持しておく、リサイクル・ビンという機能が導入されました。

WINDOWSでは、ゴミ箱にあたるような機能です。

フラッシュバック・ドロップの手順書。

1.削除した表のオブジェクト名を調べる。
  いつも使用している論理テーブル名では、フラッシュバック・ドロップを
  行うことができないため、データベース内のオブジェクト名(物理名)を
  指定する必要があります。

SELECT
    OBJECT_NAME,
    ORIGINAL_NAME,
    DROPTIME
FROM
    USER_RECYCLEBIN
ORDER BY
    DROPTIME DESC
WS000013.jpg

2.フラッシュバック・ドロップの実行
  先ほど参照した、オブジェクト名を指定してフラッシュバック・ドロップを行います。
  オブジェクト名は、ダブルクオーテーションで囲みましょう。

FLASHBACK TABLE “BIN$Wxbf2SeZMArgQAB/AQBalQ==$0” TO BEFORE DROP
WS000009.jpg

3.データの確認
  データが戻っていれば成功です。
  これで怒られずにすみます!
WS000004.jpg
  
  

余談ですが、わたしが愛用するOBJECT BROWSERでは簡単にフラッシュバック・ドロップを行うことが可能です。
アイコンのゴミ箱ボタンを押して、戻したいテーブルを選び「右クリック」「復元」。
WS000014.jpg

さらに余談ですが、削除時にPUGRE区を入れるとゴミ箱に保持されず、完全に削除されます。

DROP TABLE KOKKA_KIMITSU PUGRE;

さらば