PLSQL Drop 表之後恢復
阿新 • • 發佈:2018-12-21
不小心在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' --可以看到歷史對資料庫表、索引等的操作,進而實現閃回。