Heim  >  Artikel  >  Datenbank  >  ORA-16038的解决

ORA-16038的解决

WBOY
WBOYOriginal
2016-06-07 17:27:021426Durchsuche

ORA-16038: 日志 3 序列号xxxx无法归档,从这里我们可看出日志组4的数据文件损坏或丢失了,该错误信息指出的日志组和日志名为借鉴

下午15:33分突然接到测试组一个MM的电话说数据库无法连接,于是赶紧登录到数据库尝试登录,果然连接后 长时间处于等待状态。当时第一感觉是不是归档满了,于是查看了当前RAC环境下每个节点的alert日志。结果其中一个节点日志在15:30分报错:

ORA-16038: 日志 3 序列号 5035 无法归档
ORA-19809: 超出了恢复文件数的限制
ORA-00312: 联机日志 3 线程 1:

第一时间做了日志的清理,,结果还是不行。于是又查看了ASM存储磁盘的剩余量发现也没问题。没法只能上网取经,有网友说是闪回区爆满,根据我当前环境的部署我觉得这点不可能,因为我的归档不放在这个位置所以不可能是闪回区不够。后来从一片国外网站上看到,该问题其实是redo 日志本身的问题。

1、查看alert告警日志:

ORA-16038: 日志 3 序列号xxxx无法归档

ORA-00313: open failed for members of log group 4 of thread 1
ORA-00312: online log 3 thread 2: '/opt/Oracle/db04/oradata/ORCL/redo03.log'
从这里我们可看出日志组4的数据文件损坏或丢失了,该错误信息指出的日志组和日志名为借鉴只用但是错误码一致。

2、查看文档:

该错误码英文为:The error produced as because it failed to archive online redolog due to a corruption in the online redo file. 大致意思就是说:当前归档失败的原因是因为在线日志中有脏数据。

3、解决办法:

清除非归档的日志。

SQL>select group#,sequence#,archived,status from v$log;

该结果会显示哪些日志没有归档,结果显示第3组日志还没有归档。这有可能就是脏日志。我们可以清除掉这组日志。

4、清除

SQL>alter database clear unarchived logfile group 3;

5、执行完以上操作后尝试切换日志组

SQL>alter system switch logfile;

在经过第4步骤后尝试连接,已经成功!此时如果是生产需赶紧对数据库做次全备。

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn