儲存過程誤刪除的恢復

wenhual43發表於2013-10-15
今天在開發環境,同事不小心把儲存過程刪除了,同時還刪除了3個表。是purge哦!

沒有備份,怎麼恢復呢。

檢視版本:10.2.0.3
解決思路: 
sys登入
1.show parameter undo_retention; 發現時間很短,才900,我趕緊改大點,2小時,alter system set undo_retention=7200;
2.備份儲存過程原始碼
create table before_drop_pro as select OWNER, NAME, TYPE, LINE, TEXT
  from dba_source as of timestamp sysdate - 1 / 24 where wner='xxx';
3.找到刪除前的表
 select TABLE_NAME from dba_tables as of timestamp sysdate - 1 / 24 where WNER='xxxx' ;
4.根據第三步找到刪除的表,把表的列資訊找回來
create table bf_drop_tab as select table_name , column_name ,data_type ,data_length ,nullable ,column_id  from dba_tab_cols where wner='xxx' and table_name in (xxxxxx);

這樣,儲存過程,刪除前的表結構已經儲存到備份表。但是刪除前表的記錄貌似沒有想到找回的辦法。

有驚無險,能恢復一部分算一部分。聽說truncate 的表也可以找回來,有時間了去研究一下。這個恢復有難度。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25027760/viewspace-774419/,如需轉載,請註明出處,否則將追究法律責任。

相關文章