码迷,mamicode.com
首页 > 其他好文 > 详细

redo文件损坏,异常问题处理二则

时间:2015-09-12 01:06:55      阅读:221      评论:0      收藏:0      [点我收藏+]

标签: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文件损坏,异常问题处理二则

标签:redo损坏

原文地址:http://8026776.blog.51cto.com/8016776/1693891

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!