Oracle RECYCLEBIN(ごみ箱)を確認して削除や復旧する方法

OracleでRECYCLEBIN(ごみ箱)を確認する方法と削除や復旧する方法です。

Oracle RECYCLEBIN(ごみ箱)を確認して削除や復旧する方法

Oracle 10g以降、DROP TABLEでテーブルを削除した場合、ごみ箱(RECYCLEBIN)に入ります。ごみ箱に入ってるテーブルは、BIN$〜 という名前に変換されています。これは誤って削除した場合に復旧できるよう、別の名前で保管される機能です。とはいえゴミなので、ある程度の期間がきて不要なオブジェクトなようなら、ごみ箱を空してスッキリさせておきましょう。

ここでは RECYCLEBIN(ごみ箱)を確認する方法と削除する方法 を紹介します。


RECYCLEBIN(ごみ箱)の確認方法

ごみ箱の中身を確認しましょう。


SELECT * FROM RECYCLEBIN;

参照されたテーブルを確認して、不要なら削除します。

RECYCLEBIN(ごみ箱)の削除方法

削除するにはPURGEを使います。

PURGE:パージと読みます。


--ユーザーの「ごみ箱」を空にする
PURGE RECYCLEBIN ;

システムの「ごみ箱」を空にするSQLはこちら。


--システムの「ごみ箱」を空にする
PURGE DBA_RECYCLEBIN ;

これでOracleインスタンス内のゴミ箱を全て空にできました。

RECYCLEBIN(ごみ箱)から戻す方法

ちなみに誤って消してしまった RECYCLEBIN にあるテーブルを元に戻すには、


FLASHBACK TABLE USER_TABLE TO BEFORE DROP;

とすれば元に戻ります。データもキッチリ復旧しますよ。

RECYCLEBIN(ごみ箱)が面倒な方

ゴミ箱管理が面倒だとか、RECYCLEBINなんて必要ないという方もいると思います。そんな方はDROP TABLEの最後にPURGEを付けてあげるといいですよ。


DROP TABLE USER_TABLE PURGE;

ゴミ箱を完全に無効化する方法も有ります。


--ごみ箱機能を無効化
ALTER SYSTEM SET RECYCLEBIN=OFF;
--ごみ箱機能を有効化(デフォルトはONです)
ALTER SYSTEM SET RECYCLEBIN=ON;

まとめ

OracleでRECYCLEBIN(ごみ箱)を確認する方法と削除や復旧する方法を紹介しました。

RECYCLEBIN(ごみ箱)は テーブルスペースの容量が不足すると自動的にパージが実行されます。ただ、削除の期限やゴミ箱のサイズを設定することはできません。もし、ごみ箱に不要なオブジェクトしかない場合には、上記のコマンドを使って消去しましょう。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。