crs自动清除日志的时候没有释放文件,bug17034444 的解决办法

在巡检数据库的时候,发现grid的安装目录非常大,于是进行了进一步的排查,发现有很多*.l10的日志已经删除了,但是并没有释放,使用lsof命令可以看到

lsof|grep delete

[[email protected] oraagent_grid]$ sudo lsof |grep delete|grep -E "oraagent|audit"oracle    18375      grid   33w      REG             253,18    10549871    1715713 /oracle/app/11.2.0/grid_1/log/smidb11/agent/crsd/oraagent_grid/oraagent_grid.l10 (deleted)oracle    25466      grid    4w      REG             253,18    10576898    1704191 /oracle/app/11.2.0/grid_1/log/smidb11/agent/ohasd/oraagent_grid/oraagent_grid.l10 (deleted)oracle    25468      grid    4w      REG             253,18    10576898    1704191 /oracle/app/11.2.0/grid_1/log/smidb11/agent/ohasd/oraagent_grid/oraagent_grid.l10 (deleted)。。。。。。oracle    25603      grid    4w      REG             253,18    10576898    1704191 /oracle/app/11.2.0/grid_1/log/smidb11/agent/ohasd/oraagent_grid/oraagent_grid.l10 (deleted)oracle    28628      grid    4w      REG             253,18    10511009    1704519 /oracle/app/11.2.0/grid_1/log/smidb11/agent/crsd/oraagent_grid/oraagent_grid.l10 (deleted)
二节点:
[[email protected] ~]$ sudo lsof |grep delete|grep -E "oraagent|audit"oracle    15647      grid    4w      REG             253,18    10574076    3150129 /oracle/app/11.2.0/grid_1/log/smidb12/agent/ohasd/oraagent_grid/oraagent_grid.l10 (deleted)oracle    15649      grid    4w      REG             253,18    10574076    3150129 /oracle/app/11.2.0/grid_1/log/smidb12/agent/ohasd/oraagent_grid/oraagent_grid.l10 (deleted)。。。。。。。。oracle    15887      grid    4w      REG             253,18    10543680    3150126 /oracle/app/11.2.0/grid_1/log/smidb12/agent/crsd/oraagent_grid/oraagent_grid.l10 (deleted)

随着grid的运行,此日志会越来越多,最终耗尽内存.通过MOS查找问题,发现名字Bug17034444  

但是发现此Bug还没有补丁,需要申请开发,所以通过自己编写脚本来进行规避,思路如下:

每隔一段时间扫描一下目录,查看是否生成 oraagent_grid.l10文件

如果发现此文件生成,那么在grid自动删除此文件前,提前进行删除,避免grid不会释放文件的bug

脚本如下:

source /home/grid/.bash_profile
HOSTNAME=`hostname`
LOGFILE1=/oracle/app/11.2.0/grid_1/log/${HOSTNAME}/agent/crsd/oraagent_grid/oraagent_grid.l10
LOGFILE2=/oracle/app/11.2.0/grid_1/log/${HOSTNAME}/agent/ohasd/oraagent_grid/oraagent_grid.l10
LISTENER_XML_LOG=/oracle/app/grid/diag/tnslsnr/${HOSTNAME}/listener/alert/log_*.xml
LISTENER_TRACE_FILE=/oracle/app/grid/diag/tnslsnr/${HOSTNAME}/listener/trace/listener.log
DATETIME=`date +%Y%m%d%H%M%S`
echo "${DATETIME} Is Run!" >>/home/grid/script/clearlog.log
if [ -e ${LOGFILE1} ] ; then
  rm -rf ${LOGFILE1}
  echo "${LOGFILE1} Deleted!">>/home/grid/script/clearlog.log
fi
if [ -e ${LOGFILE2} ] ; then
  rm -rf ${LOGFILE2}
  echo "${LOGFILE2} Deleted!">>/home/grid/script/clearlog.log
fi
FILE_CNT=`ls -l /oracle/app/grid/diag/tnslsnr/${HOSTNAME}/listener/alert/|wc -l`
if [ ${FILE_CNT} -gt 100 ] ; then
  ls -lrt ${LISTENER_XML_LOG}>>/home/grid/script/clearlog.log
  rm -rf ${LISTENER_XML_LOG}
fi
if [ `du -sk|awk ‘{print $1}‘` -gt 1073741824 ] ; then
  echo "${LISTENER_TRACE_FILE} Clear!!">>/home/grid/script/clearlog.log
  >${LISTENER_TRACE_FILE}
fi
exit 0

使用的时候需要将前面的几个变量修改为当前服务器对应的值,此脚本除了会删除 *.l10的日志文件以外,还会自动清除监听日志.

Oracle官方描述:

时间: 2024-11-07 09:03:22

crs自动清除日志的时候没有释放文件,bug17034444 的解决办法的相关文章

Activiti+oracle 启动项目时不能自动建表或更新表的问题分析及解决办法

现象描述:按照正常配置,第一次启动时不能自动建表 关键配置片段如下: <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"> <property name="dataSource" ref="dataSource" /> <property name=&q

归档日志缺少导致ogg同步出现问题,解决办法

迁移数据库的过程中,最后启动ggs 启动完ggs后发现抽取进程报错,查看日志发现报错如下: 2016-03-16 00:15:42  INFO    OGG-01517  Position of first record processed for Thread 2, Sequence 17643, RBA 793616, SCN 1389.3430888557, Mar 15, 2016 11:18 :51 PM. Source Context : SourceModule          

微信内无法自动跳转外部浏览器打开H5分享链接的解决办法

很多情况下我们用微信分享转发H5链接的时候,都无法在微信内打开,即使开始能打开,过一段时间就会被拦截,拦截后再打开微信会提示 “已停止访问该网址” ,那么导致这个情况的因素有哪些呢,主要有以下四点 1.网页链接被举报次数过多.2.网页含违规内容,含敏感词.3.被腾讯检测系统判断为诱导分享内容.4.转发分享次数达上限 大多数的情况下都是被人举报次数过多导致链接被封,而举报的人群里其实目标用户并没有占很多,多数都是来自同行的恶意举报,这是没有办法的事情.当举报次数达到一定数量时,微信的检测系统就会检

beego orm自动建表时字段default值不设置的解决办法

在使用beego的orm建表时,我的模型是这样建立的 type Test struct { Id int64 Name string Sex int64 `orm:"default(1)"` Age int64 Content string `orm:"default('')"` } content字段设置默认为空,Sex字段设置默认为1,那么生成的表确并没有default,这不科学,于是我翻了下源码,发现设置default的这段被注释了,位置在 github.co

ssi-uploader上传图片插件,点击选择文件按钮自动提交表单解决办法

先介绍一下这款插件,然后再谈使用中可能遇到的问题 ssi-uploader是一个JQuery的图片上传插件,界面比较美观 github地址:https://github.com/ssbeefeater/ssi-uploader 演示地址:http://ssbeefeater.github.io/#ssi-uploader/examples 使用文档:http://ssbeefeater.github.io/#ssi-uploader/documentation 这里就不说明怎么使用了,githu

SQL2005自动备份,定期删除的维护计划及自动定期清除日志

作为一名DBA,他们最常见的日常任务是: 1)定期完成数据库的完全备份或差异备份.2)定期清理备份文件,因为存储空间有限,可能只需要保存一个时期段内的文件(比如一周内或一月内). 而如何做到这两点呢?笔者相信在SQL SERVER2005版本出来之前要实现这种功能,也是可以实现的,只是实现定期清理备份文件显得不那么直接,一般需要手写批处理作业维护,而在SQL Server 2005版本中,这些功能已经被设计成为预制的组件,只需要在数据维护计划中进行拖拽并设置相关属性就可以了,相关步骤如下: 第一

Linux下自动清除MySQL日志文件

MySQL运行过程中会生成大量的日志文件,占用不少空间,修改my.cnf文件配置bin-log过期时间,在Linux下自动清除MySQL日志文件 [mysqld] expire-logs-days=7 max-binlog-size=268435456

php session 阻塞 过期不自动清除session文件

php默认session session_start后,php就会打开session文件,然后同一时间用户再用那个session_id访问,就会被前面那个请求阻塞直到前面一个访问结束才会释放文件在使用ajax的时候这个问题会比较多 例: 请求1:打开主网页请求2:AJAX获取用户信息请求3:AJAX获取产品信息请求4:开一个新页面 当请求2存在的时候,请求3和4必须等 session就是一个文件,打开的时候使用独占锁打开的. 另外,php的session文件也是不会自动清除的,可能是因为php是

SQL Server 2008 清除日志

在windows中运行sql server命令需使用sqlcmd命令,这个在安装sql server时会一并安装. 使用sqlcmd进入交互模式下: 之前使用的命令为: DUMP TRANSACTION databasename WITH NO_LOG --清空日志 BACKUP LOG databasename WITH NO_LOG --截断事务日志 DBCC SHRINKDATABASE(databasename) --收缩数据库 上述命令需要按照顺序执行, 通常比直接使用右键菜单中的"收