1. 程式人生 > >PLSQL Drop 表之後恢復

PLSQL Drop 表之後恢復

 

 

不小心在PLSQL中將一張表刪掉了,並且都不知道自己刪的是哪張表,一時大為緊張,尋思了一下找到了一種恢復誤刪除表的方法。

1、檢視你刪除的是哪張表:

       select * from user_recyclebin where DROPTIME >'2013-09-02 00:00:00';

我們會看到我們刪除的是ASS_REQ_LOG_STAT_BAK表,這下鬆了一口氣,原來是它,還是張備份表。

2、那還是把它恢復過來吧:

      我們從上條查詢語句中得到一個OBJECT_NAME這是有用的,下面我們就使用它來恢復表:
   

  flashback Table "BIN$5WCRYXHwI6/gQBKsPzBBtw==$0" to before drop

就這樣,大功告成。不禁感嘆Oracle的回收站還是很有用的。

3、如果是刪了或修改裡面的資料,可以先建立一個快表將刪除修改之前狀態的資料找回到這個表中:

CREATE TABLE QUICK_TABLE AS
SELECT * FROM TABLE_NAME AS OF TIMESTAMP SYSDATE-1/24 (一小時前的),減去的時間可以自己定 如:select * from TABLE_NAME AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' MINUTE)

 

4、關於資料庫的回收站:

select * from user_recyclebin t where t.TYPE='TABLE'   --可以看到歷史對資料庫表、索引等的操作,進而實現閃回。