标签:redo损坏
第一种情况:
asm存储方式,在数据库open步骤时,提示某个磁盘组无法归档某个在线日志,无法写入文件,此时未归档的redo log刚好是需要启动时归档的日志。
1.确定一下 归档空间是否已经满了
如果alert日志提示,没有可用的目标空间,首先需要考虑这一点
2.如果空间释放后(使用rman进行删除),仍不能启动
需要把对应的在线日志清空
alter system clear logfile group 2;
或:alter system clear unarchived logfile group2;
3.启动后,全备份数据库
rman>backup database plush archivelog to destination=‘/oracle/dbbackup‘;
第二种情况:
普通单实例情况下,服务器重启无法打开,提示某个在线日志找不到无法打开,启动到mount状态后查询v$log发现状态为current:
alert日志有如下错误:
ORA-00313: open failed for members of log group 4 of thread 1
ORA-00312: online log 4 thread 1: ‘/home/oracle/oradata/orcl/redo04B.log‘
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
查看对应目录文件,文件确实存在。
alter database open;提示 数据库需要crash recovery;
尝试 关闭数据库 拷贝对应的redo4.log文件,但无法拷贝。
数据库没有备份,需要进行异常恢复。
alter database mount;
recover database until cancel; -- 提示需要使用resetlogs方式打开
alter database open resetlogs; -- 提示datafile 1 需要进一步恢复
recover datafile 1; -- 又回到提示redo04B.log文件无法读取
alter system set "_allow_resetlogs_corruption"=true scope=both;
shutdown immediate;
alter dtabase mount;
recover database until cancel;
recover datafile 1;
alter database open;
此时alert中存在 ORA-00600: internal error code, arguments: [4194]错误,这是因为 undo中数据库与实际数据不一致导致的。
重建-undo可以解决此问题;
create undo tablespace undotbs2 datafile ‘/u01/oracledata/undotbs201.dbf‘ size 10G autoextend on next 100M maxsize 20G;
alter system set undo_tablespace=undotbs2 scope=both;
shutdown immediate
startup
--全备份数据库
rman>backup database plush archivelog to destination=‘/dbbackup/‘;
此时,数据库可以启动,正常访问,可能有部分数据丢失
本文出自 “8016776” 博客,请务必保留此出处http://8026776.blog.51cto.com/8016776/1693891
标签:redo损坏
原文地址:http://8026776.blog.51cto.com/8016776/1693891