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

时间:2021-09-05 05:50:09

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