1、问题
朋友找到我问关于crfclust.bdb文件太大的问题,这个问题最近在技术群里也是经常发生!今天就来说说并处理一下这个问题。

2、这是个什么
这个文件和Cluster Health Monitor服务有关,简称CHM。
Cluster Health Monitor是Oracle grid里的一个组件,可持续监控并存储甲骨文集群件及操作系统的资源指标。
该功能默认启用,集群健康监控器具备以下能力:
- 协助进行节点驱逐问题分析
- 在本地记录所有进程数据
- 支持用户定义常驻锁定进程
- 监听集群同步服务与通用进程间通信事件
- 按类型对进程进行分类
- 支持路由追踪、网络状态查询、网络连通性测试等插件采集工具
- 支持导出 CSV 格式文件,便于数据分析
集群健康监控器可为甲骨文自治健康框架旗下其他组件提供数据源,例如甲骨文集群健康分析器、甲骨文数据库服务质量管理工具等。
以上是官网关于此服务的介绍,通过这里的描述,我们也清楚的知道了,它就是一个监控进程,crfclust.bdb 文件是Oracle Cluster Health Monitor (CHM) 中 CRF 服务用于存储数据的文件,默认只存储一定时间数据,正常情况不会增长过大,默认大小是1G。但是有在一些平台和版本中由于bug原因导致过大。
例如在11.2.0.4版本中,由于bug 10165314,ORA.CRF服务可能会生成很大的文件,这可能会对$GI_HOME的使用率造成压力。因此,在某些情况下可能需要删除这些文件或者禁止ORA.CRF随ohas启动而启动。
3、管理CHM
通过命令查看该服务器状态ora.crf
[root@rac1 ~]# crsctl stat res -t -init
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.asm
1 ONLINE ONLINE rac1 Started
ora.cluster_interconnect.haip
1 ONLINE ONLINE rac1
ora.crf
1 ONLINE ONLINE rac1
ora.crsd
1 ONLINE ONLINE rac1
ora.cssd
1 ONLINE ONLINE rac1
ora.cssdmonitor
1 ONLINE ONLINE rac1
ora.ctssd
1 ONLINE ONLINE rac1 ACTIVE:0
ora.diskmon
1 OFFLINE OFFLINE
ora.evmd
1 ONLINE ONLINE rac1
ora.gipcd
1 ONLINE ONLINE rac1
ora.gpnpd
1 ONLINE ONLINE rac1
ora.mdnsd
1 ONLINE ONLINE rac1
[root@rac1 ~]#
可通过如下命令查找到对应生成的文件位置
[root@rac1 ~]# oclumon manage -get reppath
CHM Repository Path = /g01/app/11.2.0/grid/crf/db/rac1
收集相应的日志,但是读起来不是太友好,需要上工具。。
oclumon dumpnodeview -allnodes -v -s "2026-05-19 08:30:00" -e "2026-05-19 09:00:00" > /tmp/chm.txt
我还是更喜欢用OSW工具,比较直观。
4、如何处理
对于这类大文件,可以通过如下命令在oracle的安装目录中搜索,我这的机器上就能找到这个文件比较大。
[root@rac1 ~]# find /g01 -type f -size +1024M
/g01/app/11.2.0/grid/crf/db/rac1/crfclust.bdb
[root@rac1 ~]# ls -ltrh /g01/app/11.2.0/grid/crf/db/rac1/crfclust.bdb
-rw-r----- 1 root root 25G May 19 22:19 /g01/app/11.2.0/grid/crf/db/rac1/crfclust.bdb
处理的流程就是:两节点依次清理,清理完一节点,再清理二节点
采用停止ora.crf资源--->删除crfclust.bdb文件--->启动ora.crf资源(或者干关闭这个进程不让它启动)
1、停止服务,root用户执行
crsctl stop res ora.crf -init
2、删除文件
oclumon manage -get reppath 找到路径
find /g01 -type f -size +1024M 或者通过查大文件找到文件
执行删除rm crfclust.bdb
3、启动服务或永久禁用,root用户执行
#关闭
crsctl stop res ora.crf -init
#启动
crsctl start res ora.crf -init
#禁用
crsctl modify resource ora.crf -attr "AUTO_START=never" -init
#启用
crsctl modify resource ora.crf -attr "AUTO_START=always" -init