记录一次ORA-00742 REDO日志写丢失问题

大半夜,接到客户电话,数据库挂了,下面所有客户端连接不上了.由于是7*24小时业务,因此客户很着急,让客户发了报错截图,第一感觉是归档日志满了,但是客户那边有定时删除日志脚本啊,不应该啊,报错截图如下

赶紧和客户要了远程进行查看,明显归档日志空间是足够的.再检查归档日志路径报错,如下:

错误很明显了,归档日志在归档redo的时候发现了redo出现了写丢失.

检查alert日志也是同样的错误:

什么是写丢失呢?

写丢失说明oracle在写redo的日志的时候,由于某种原因,一般可能是cache缓存问题,导致lowr进程在写redo的时候发生了写丢失.

而在进行归档的时候,对redo进行校验发现redo日志出现坏块,因此无法进行归档.

可能产生写丢失的原因:服务器问题,例如服务器cache,存储问题例如存储的cache故障,意外掉电等.

这里明显不是意外掉电,那么就是有可能是服务器或者存储cache故障导致.

我们这里比较幸运的是redo的写丢失并没有导致数据库直接宕机,仅仅是导致了日志无法归档.

故障解决

由于只是redo日志无法归档,因此我们可以进行手工强制清除未归档的日志.

根据上面的报错信息可以看到是100034号日志无法归档.因此只需要清除此日志,语法如下:

Alter database clear unarchived logfile group XXXX;

清除完成之后,重新设置一下归档日志的状态:

alter system set log_archive_dest_state_1=enable;

参考oracle官方文档如下:

Database Crashe with ORA-16038/ORA-742 Errors (Doc ID 2064718.1)

SOLUTION

SQL> alter system dump logfile 'E:\ARCHIVELOGS\xxx\REDO03.LOG' validate;


Clear the log in order to enable the archival again


SQL> select group#,member from v$logfile;
SQL> alter database clear unarchived logfile group <group number>;

Should be group# 3 , if yes

After this ,  take a full backup, because the old one would not be useful anymore because of the lost of archive log sequence .

https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=378047153651334&id=2064718.1&displayIndex=3&_afrWindowMode=0&_adf.ctrl-state=17nxrq8cj0_1056

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值