跳转到主要内容

oracle归档日志占满系统存储空间,导致数据库启动失败

故障描述

oracle归档日志占满系统存储空间,导致数据库启动失败;
存储空间占满导致rman工具无法使用,无法删除过期归档日志。

故障分析

告警信息:
1、 存储空间满,/opt占用率达到100%;


2、无法进入数据库操作;


3、无法使用rman工具清除过期归档日志。

处理过程

1、通过命令检查存储空间被哪个目录占用了,最深查询到第八层目录:du -h --max-depth=8。查询到/opt/oracle/archivelog有142G这么大,打开看有3000+的dbf文件,通过文件目录结构分析,此为数据库归档文件。


2、删除数据库归档文件。
首先切换oracle用户
su – oracle
cd  /opt/oracle/archivelog
执行下面命令删除7天以前的归档日志:
find . -xdev -mtime +7 -name "*.dbf" -exec rm -f {}  \;

3、执行rman逻辑上删除过期日志
rman
RMAN> connect target /
>crosscheck archivelog all;
>delete expired archivelog all;
>quit

4、关闭数据库归档日志:
登录数据库:!sql
SQL> shutdown immediate
启动了实例,并加载了数据库  SQL> startup mount
归档->非归档  SQL> alter database noarchivelog;
检查是否成功  SQL> archive log list

5、启动数据库,完成。
SQL>alter database open;

此后,不再生成归档日志。

建议/总结

打开归档日志时,DBA定时清理归档文件,避免再次占满;
如不使用,关闭归档日志。