今天在开发环境,同事不小心把存储过程删除了,同时还删除了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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25027760/viewspace-774419/