前言
作为一名运维人员,定期巡检属于自己管辖范围内的数据库是必不可少的。笔者最近巡检一套RAC+DG的业务数据库的时候,发现主库的ASM磁盘+LOG出现了空间不足的情况,可是该操作系统已配置自动化RMAN清理日志的任务,不太可能失效,于是笔者就此展开了排查。
故障现象
、
1、登录Oracle用户,查看自动化清理归档任务的具体策略,见下图,该策略是通过登录Rman的方式,对七天以前的归档文件进行删除。

2、既然查看任务没有任何端倪,那么就登录Rman,手动执行清理归档,命令如下
delete noprompt archivelog until time 'sysdate-7';
此时,系统提示Rman-08137告错,无法对选中的归档日志进行删除操作

3、继续查看数据库的Alert日志,发现大量的standby日志无法传输到备库的告警,初次告警的日期和主库依旧保存的归档日志日期一致
解决步骤
1、通过排查可以猜测,主备库之间的同步任务出现了问题,导致主库的归档清理自动化任务失效,从而引起ASM磁盘的爆满,严重会影响业务。
通过ping备库的IP不通,验证了猜想。后来跟用户沟通后得知,备库的ASM裸磁盘由于整个虚拟化平台资源不足,被甲方技术人员误删,导致备库数据库直接挂掉。
2、那么当务之急是先释放+LOG磁盘的空间使用率,可以使用如下命令,对过期的归档文件进行删除。
delete force archivelog until time 'sysdate-7';
该条命令被成功执行
3、将主库的log_archive_dest_2参数设置为空,即向主库宣告,备库已经不存在了,不要再保留日志了
alter system set log_archive_dest_2='' scope=both sid='*';


4、接下来再次通过RMAN来对归档进行删除(不带force选项),成功执行

5、切换一遍日志,确保归档日志成功生成,故障解决。

后话
Oracle通过凌驾于自动清理任务的日志保护机制,很大程度上减少了DBA重新搭建数据备库的次数,但是由于该保护机制,极有可能导致主库的磁盘组满掉,影响数据库的正常运行。所以需要对其进行定期巡检。
最后修改时间:2023-08-29 09:47:54
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




