Oracle資源回收筒解決誤刪除表

來源:互聯網
上載者:User

  不小心使用drop table
語句把表刪除了,資料也沒有備份。就是資料備份了恢複的時候還是會遺失資料的,這時候不必太慌張,或許oracle的資源回收筒(recyclebin)可以解決問題。

  【使用環境】:oracle 10g r1
、oracle 10g r2、 Oracle 11g r1、 oracle 11g r2

1、 
檢查資料庫是否開啟資源回收筒功能。--預設是開啟的

SELECT Value FROM V$parameter WHERE Name = 'recyclebin';結果為ON說明開啟

2、 
查詢被刪除的表是否在資源回收筒中。

目前使用者下

Select * from user_recyclebin where original_name=upper(‘table_name’);

查詢結果如所示

注意:如果看到相同的表多個,主要看object_name和droptime。根據時間來選擇要恢複哪個表。

3、 
如果我要想恢複2013-01-08 11:36:41時刻的表

FLASHBACK TABLE "BIN$0r+nc4aFudbgQKjAZNwSjA==$0" TO BEFORE DROP;

4、 
檢查表中的資料是否是自己想要的,如果不是drop掉,重新恢複。

oracle資源回收筒類似於windows的資源回收筒,需要注意以下幾點: 

1、 
如果drop table table_name purge;
相當於windows 的shift+delete,資源回收筒中是沒有資料的。

2、 
時間過長。如果你想使用資源回收筒恢複1周前被刪除的表,那我不能保證是否能恢複出來。資源回收筒也會滿的,取決於使用者的空間,如果使用者要插入資料,空間不夠了,首先oracle會自動清除資源回收筒。另外,如果你刪除了一張大表(如:1G以上),會直接造成資源回收筒滿,這時候刪除的表不會存放在資源回收筒中。

3、 
刪除以下對象不會放在資源回收筒內

drop a user

drop a cluster

drop a type

drop a tablespace

delete from table;commit;

truncate table XXX;

參考文檔:Oracle Database Administrator's Guide 11g Release 2 (11.2)

E17120-07

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.