日期:2014-05-16  浏览次数:20629 次

关于数据库一致改关闭下redo日志文件丢失的处理办法的总结



数据库一致性关闭下redo日志文件丢失的处理办法(归档和非归档都行)

1. inactive log  在一致性关闭后删除重启时可以在mount下(不丢失数据)
alter database clear logfile group n; 
alter database open;


2. active log    在一致性关闭后状态会变成inactive(由ARCn归档) 处理方法如 inactive的方式一样,若状态还是active则:
alter database clear unarchived logfile group n;


3. current log  在一致性关闭后状态仍为current ,此时在在mount下是不能clear的,会报错。要解决这个


问题可以使用隐藏参数来关闭数据库一致性验证来打开数据库(慎用!!!!)(只要dbwr在关闭时写数据数据块了就不会丢数据)
startup mount;
alter system set "_allow_resetlogs_corruption"=true scope=spfile;
startup force mount;


欺骗方式恢复数据库(为了使resetlogs参数可用)
recover database using backup controlfile;
遇到提示:Specify log: {<RET>=suggested | filename | AUTO | CANCEL}直接回车


alter database open resetlogs;
当然,在启动数据库后要重置隐藏参数
alter system reset  "_allow_resetlogs_corruption" scope=spfile sid='*';
然后重启数据库
shutdown immediate
startup