微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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/xxxx@xxx
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog until time 'sysdate-3';
exit;
EOF

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

原文地址:https://www.jb51.cc/oracle/206504.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐