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定时清理归档文件,避免再次占满;
如不使用,关闭归档日志。