oracle rac 11g 日志占满系统盘导致数据库down掉

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle rac 11g 日志占满系统盘导致数据库down掉相关的知识,希望对你有一定的参考价值。

oracle日志占满系统盘满了导致数据库挂掉 并且archivelog日志也满了倒是数据库无法open,无法登陆,幸好还可以到mount状态。解决办法:

1.根据报错查看 表象: crs 服务down掉
CRS-0184: Cannot communicate with the CRS daemon
删除/var/tmp/.oracle 目录
删除oracle alter日志:
cd /u01/app/oracle/rdbms/bol/BOL1/alter
rm -rf *

到此重启机器 可以启动oracle的所以服务,但是不能启动oracle的db服务

启动db服务的时候报错如下:
PRCR-1079 : 无法启动资源 ora.orcl.db ORA-03113: end-of-file on communication channel

解决办法:
su - oracle
sqlplus / as sysdba

startup mount##rac上面2台都要做

查看是否为归档模式:
archive log list

查看闪回分区大小:
show parameter db_recovery_file_dest_size

查看archlog log使用率:
select * from v$flash_recovery_area_usage; --查看空间占用率,如果 ARCHIVED LOG 超过90%,Oracle随时有宕机的危险

增大闪回分区大小:
alter system set db_recovery_file_dest_size=xxG;##rac 操作一台即可

启动数据库:

alter database open ##rac 上面2台机器都要做

到此之后,可以连接数据库了,但是现在需要做的是清楚数据库的归档日志,因为现在只是增大了db_recovery的空间而已,我们需要清理掉不需要的归档日志,获得空间。
清除归档日志脚本:
#!/bin/bash
source /home/oracle/.bash_profile
#LOGFILE=/data/rman/rman_delete.log
#RMAN=$ORACLE_HOME/bin/rman
$ORACLE_HOME/bin/rman log=/home/oracle/del_arch$(date +%Y-%m-%d).log <<EOF
connect target sys/[email protected]
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog until time ‘sysdate-3‘;
exit;
EOF

直接在root目录下运行即可。到此问题解决完成,记录一下,日后可以使用。

以上是关于oracle rac 11g 日志占满系统盘导致数据库down掉的主要内容,如果未能解决你的问题,请参考以下文章

iscsi如何固定盘符,保证oracle 11g rac两节点盘符顺序一致?

oracle 11g rac开启归档日志和闪回

如何清理Oracle11g RAC日志文件

如何清理Oracle11g RAC日志文件

ORACLE 11G DB RAC ORA-00257archiver error解决办法

oracle rac 11g修改开启归档并修改归档日志路径