基本

[Oracle] Oracleのゴミ箱(RECYCLEBIN)

リサイクルビンについて

Oracleのごみ箱

Oracleには、Windowsのように「ごみ箱」という概念が存在しています。

DELETE等で削除した表などのオブジェクトは、実は完全には消去されず、この「ごみ箱」にあたるRECYCLEBINに登録されるのです。

もう少し具体的に表現すると、削除したオブジェクトの情報をSYSスキーマのデータディレクショナリ表へ登録する。となります。

つまり、ごみ箱とはあくまで概念であって、実際にごみ箱という領域が存在するわけではありません。

また、削除したオブジェクトも完全に消えるわけではなく、表データなどの実体はその場に残ったままなのです。

 

削除したオブジェクトの復活

ごみ箱に入っているオブジェクトは、もちろん元に戻すことができます。

削除したオブジェクトを元に戻すことを「フラッシュバックドロップ」といいます。

フラッシュバックドロップで行われるのは、SYSスキーマのデータディレクショナリ表に登録されている、「オブジェクトを削除した」という情報を削除することです。

上記でもご紹介したとおり、削除したオブジェクトの実体はその場に残ったままなので、データディレクショナリ表の情報を削除するだけで元に戻ります。

ただし、フラッシュバックドロップを使用するためには、Oracleを起動する際に必要な初期化パラメータのうちのRECYCLEBIN初期化パラメータを有効にしている必要がある点に注意が必要です。

 

まとめ

今回説明した内容をまとめると以下のようになります。

RECYCLEBINまとめ

・削除したオブジェクトの情報が登録される
・ごみ箱という領域は存在しない
・削除したオブジェクトの実体は残ったまま
・削除したオブジェクトはフラッシュバックドロップで元に戻すことができる
・フラッシュバックドロップ使用時はRECYCLEBIN初期化パラメータを有効にする

 
 
以上が、Oracleのごみ箱(RECYCLEBIN)についての説明となります。
ぜひ参考にしてみてください。