首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

Oracle RAC 磁盤空間耗盡排查:crfclust.bdb 文件暴增 31GB 佔滿 /DBSoft

     編輯:DB2 教學

故障現場:RAC 節點 /DBSoft 掛載點 100% 滿,業務無法訪問

接到告警登陸檢查,雙節點 /DBSoft(對應 $ORACLE_HOME)磁盤空間耗盡。初步排除告警日志、歸檔日志、核心轉儲文件後,鎖定 $ORACLE_HOME/crf/db 目錄。

元兇:crfclust.bdb 達到 31GB

ls -lh $ORACLE_HOME/crf/db/
-rw-r----- 1 grid oinstall 31G May 30 14:25 crfclust.bdb

根因:Cluster Health Monitor (CHM) 服務未關閉導致持續寫入

  • CHM(11gR2 引入,12c 加強)默認啟用,持續收集集群性能指標(CPU、內存、I/O、網絡、進程等)
  • 數據存儲於 $ORACLE_HOME/crf/db/ 下的 Berkeley DB 文件(crfclust.bdb、crfmond.bdb)
  • 若無保留策略或清理機制,文件將**無限增長**直至佔滿磁盤
  • 常見於測試環境、未納入監控體系、或升級後配置遺漏的集群

緊急處置與永久解決

緊急釋放空間(業務恢復優先)

# 1. 停止 CHM 服務(需 root 權限)
crsctl stop res ora.crf -init

# 2. 刪除或歸檔巨大文件(謹慎:刪除將丟失歷史性能數據)
rm -f $ORACLE_HOME/crf/db/crfclust.bdb
# 或移動至備份磁盤
mv $ORACLE_HOME/crf/db/crfclust.bdb /backup/crfclust.bdb.$(date +%F)

# 3. 重啟 CHM 服務(將自動創建新文件)
crsctl start res ora.crf -init

永久配置:限制保留時間與空間

使用 oclumon 管理工具設置保留策略:

# 查看當前保留設置
oclumon manage -get reptime

# 設置保留 7 天(默認可能為無限或極大值)
oclumon manage -reptime 168h

# 可選:限制最大空間(12c+ 支持)
oclumon manage -maxspace 10G

驗證與監控

  • 定期執行 oclumon dumpnodeview -n all 檢查數據量增長趨勢
  • 將 $ORACLE_HOME/crf/db 納入磁盤使用率監控告警閾值(如 > 80% 告警)
  • 升級/打補丁後驗證 CHM 服務狀態與保留配置

總結

crfclust.bdb 暴增是 CHM 服務無保留策略運行的典型後果。**RAC 環境必須將 CHM 數據保留配置納入標準化部署清單**,並建立磁盤空間監控,避免靜默佔滿 $ORACLE_HOME 導致集群服務不可用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved