关于数据库一致改关闭下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