Oracle-日志归档报错问题ORA-16038

背景:

最近处理了一次生产RAC的日志归档报错处理ORA-16038: log 18 sequence# 108131 cannot be archived,跟通常碰到所不同的是,此次日志归档报错是由于磁盘故障组某些磁盘成员空间不足导致的报错,不是磁盘组目录空间不够导致的报错,所以,记录一下这次问题的分析过程。

问题:

数据库日志归档失败

ARCH: Archival stopped, error occurred. Will continue retrying
ORACLE Instance orcl3 - Archival Error
ORA-16038: log 18 sequence# 108131 cannot be archived
ORA-19504: failed to create file ""
ORA-00312: online log 18 thread 3: '+ARCHDG/orcl/onlinelog/group18.log'

分析过程:

查看归档的使用路径,归档的路径为+ARCHDG,没有使用闪回区,这里可以排除闪回区限制导致的空间不足问题。

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            +ARCHDG
Oldest online log sequence     108131
Next log sequence to archive   108131
Current log sequence           108133

查看磁盘组ARCHDG的使用剩余空间(free_mb)还有444839MB,虽然安全空间已经没有剩余(usable_file_mb=-3967788MB),但它只会影响磁盘组里面数据的镜像数量,并不会导致数据写入失败。

 查看asm后台日志,发现有读取disk失败的报错,但经查询以及客户的确认,这个group 0是废弃的磁盘组DATADG1-2,不是ARCHDG磁盘组的磁盘。

 

为了快速恢复数据库以及排查磁盘组ARCHDG的问题,我们将归档路径临时调换到+DATADG磁盘组。

SQL> alter system set log_archive_dest_1='location=+DATADG';

 切换归档路径之后,日志可以成功完成归档,数据库恢复,这也进一步确认是磁盘组ARCHDG问题导致的日志归档写入失败。

继续分析磁盘组ARCHDG的问题,查看磁盘组成员的使用情况,磁盘组有两个failgroup  FG1以及FG2,可以发现磁盘组FG2已经出现磁盘剩余空间为0的情况,由于数据在磁盘组里面的分散不是强平均的,会出现某些磁盘使用偏高的情况。

所以,虽然磁盘组总的空间大小有剩余,但由于磁盘故障组FG2存在剩余空间为0的磁盘,导致归档日志在写入这些磁盘时,出现空间不足导致日志归档失败的情况。

问题总结:

日志归档写入失败的原因是由于ARCHDG磁盘故障组FG2存在剩余空间为0的磁盘,导致归档日志在写入这些磁盘时,出现空间不足导致日志归档失败的情况。

问题解决建议:

1 对磁盘组ARCHDG进行扩容,使数据再次分散,避免出现磁盘剩余空间为0的情况。

2 日常除了监控磁盘组空间的使用,还需要进一步监控磁盘组成员磁盘的使用情况。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值