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