oracle10G 11G drop表的恢復

對於oracle10G以上的數據庫版本,提供了對數據的回收站機制,通過相關的配置,我們在drop非系統表的時候,
可以不直接刪除表,而是把表放回回收站,我們可以通過一些列的方法進行還原操作。具體步驟如下

1、使用具有一定權限的用戶查找是否開啓了回收站功能
   show parameter recyclebin;
   如果是off狀態,
   alter system set recyclebin=off;
   alter system set recyclebin=on;
   alter session set recyclebin=off;
   alter session set recyblebin=on;

2、在回收站查找我們需要恢復的表
  show recyclebin/select * from recyclebin(推薦使用後面這種
  ,前面的show recyclebin 有的版本沒有)

   如果是管理員請使用 select * from dba_recyclebin

3、恢復表ct_bs_project;
  flashback table ct_bs_project to before drop;

  如果使用system或者sys進行恢復需要制定表的所屬用戶
  flashback table scott.emp to before drop;
 
4、完成恢復,進行驗證
  select * from ct_bs_project;
 
 補充:在開啓recyclebin狀態是open的情況下,drop表的時候並
 不會釋放表空間,所以我們需要定時的手動清理回收站,或者是
 表空間不夠的情況下會自動進行清理。

 釋放回收站裏面的空間
 purge recyclebin 清空回收站

 完全刪除表(釋放表空間)
 drop table ct_bs_project purge;

刪除名爲 TEST 的特定表之後需要從回收站中清除它
  purge table test;
  PURGE TABLE "BIN$04LhcpndanfgMAAAAAANPw==$0";
  兩個表名稱都可以

清除表空間 USERS 的回收站中的所有對象
PURGE TABLESPACE USERS;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章