Oracle - crfclust.bdb文件太大


今天在檢查oracle rac集群時,突然才發現服務器的根目錄下面占用了很多空間,照道理不應該出現這種情況,初步猜想可能是哪個日志或跟蹤文件太大導致。
切換到跟目錄,使用du -sh *來一層一層查看到底是哪個文件占用了這么多空間,最后定位到目錄/u01/app/11.2.0/grid/crf/db/<hostname>
使用ls -lSrh對文件進行排序,發現“罪魁禍首”是crfclust.bdb

[root@db02 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 193G 7.1G 176G 4% /
tmpfs 100G 24G 77G 24% /dev/shm
/dev/sda1 190M 81M 96M 46% /boot
/dev/sda7 261G 2.9G 245G 2% /home
/dev/sda6 3.9G 11M 3.6G 1% /tmp
/dev/sda3 77G 70G 3.5G 96% /u01
[root@db02 db02]# pwd
/u01/app/11.2.0/grid/crf/db/db02
[root@db02 db02]# ls -l /u01/app/11.2.0/grid/bin/crsctl
-rwxr-xr-x 1 root oinstall 8579 Jun 14 2018 /u01/app/11.2.0/grid/bin/crsctl
這幾個文件是oracle系統服務Cluster Health Monitor(CHM)生成的,主要記錄節點的cpu、內存等相關信息,該類文件會慢慢長大,而我這個生產庫已經跑了4年了,都已經長到了快80G。解決辦法就是刪掉它。
[root@db02 db02]# ls -ltrh
total 57G
-rw-r----- 1 root root 8.0K Jul 20 2018 repdhosts.bdb
-rw-r----- 1 root root 24K Dec 29 2018 __db.001
-rw-r--r-- 1 root root 115M Dec 29 2018 db02.ldb
-rw-r----- 1 root root 8.0K Aug 5 13:33 crfconn.bdb
-rw-r----- 1 root root 16M Oct 12 16:47 log.0000007865
-rw-r----- 1 root root 1.3G Oct 12 17:33 crfloclts.bdb
-rw-r----- 1 root root 1.1G Oct 12 17:33 crfcpu.bdb
-rw-r----- 1 root root 1.1G Oct 12 17:33 crfalert.bdb
-rw-r----- 1 root root 850M Oct 12 17:33 crfts.bdb
-rw-r----- 1 root root 998M Oct 12 17:33 crfhosts.bdb
-rw-r----- 1 root root 52G Oct 12 17:33 crfclust.bdb
-rw-r----- 1 root root 16M Oct 12 17:33 log.0000007866
-rw-r----- 1 root root 392K Oct 12 17:33 __db.002
-rw-r----- 1 root root 56K Oct 12 17:33 __db.006
-rw-r----- 1 root root 1.2M Oct 12 17:33 __db.005
-rw-r----- 1 root root 2.1M Oct 12 17:33 __db.004
-rw-r----- 1 root root 2.6M Oct 12 17:33 __db.003
[root@db02 db02]# du -sh *
1.1G crfalert.bdb
52G crfclust.bdb
8.0K crfconn.bdb
1.1G crfcpu.bdb
998M crfhosts.bdb
1.3G crfloclts.bdb
850M crfts.bdb
12K __db.001
392K __db.002
2.6M __db.003
484K __db.004
904K __db.005
12K __db.006
16M log.0000007865
15M log.0000007866
8.0K repdhosts.bdb
115M db02.ldb
解決手段
1.檢查ora.crf服務
[root@db02 db02]# /u01/app/11.2.0/grid/bin/crsctl stat res ora.crf -init -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.crf
1 ONLINE ONLINE db02
2.停掉ora.crf服務
[root@db02 db02]# /u01/app/11.2.0/grid/bin/crsctl stop res ora.crf -init
CRS-2673: Attempting to stop 'ora.crf' on 'db02'
CRS-2677: Stop of 'ora.crf' on 'db02' succeeded
[root@db02 db02]#
[root@db02 db02]# /u01/app/11.2.0/grid/bin/crsctl stat res ora.crf -init -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.crf
1 OFFLINE OFFLINE
[root@db02 db02]# ls -ltrh
total 57G
-rw-r----- 1 root root 8.0K Jul 20 2018 repdhosts.bdb
-rw-r----- 1 root root 24K Dec 29 2018 __db.001
-rw-r--r-- 1 root root 115M Dec 29 2018 db02.ldb
-rw-r----- 1 root root 8.0K Aug 5 13:33 crfconn.bdb
-rw-r----- 1 root root 16M Oct 12 16:47 log.0000007865
-rw-r----- 1 root root 56K Oct 12 17:33 __db.006
-rw-r----- 1 root root 850M Oct 12 17:34 crfts.bdb
-rw-r----- 1 root root 1.3G Oct 12 17:34 crfloclts.bdb
-rw-r----- 1 root root 1.1G Oct 12 17:34 crfcpu.bdb
-rw-r----- 1 root root 1.1G Oct 12 17:34 crfalert.bdb
-rw-r----- 1 root root 998M Oct 12 17:34 crfhosts.bdb
-rw-r----- 1 root root 52G Oct 12 17:34 crfclust.bdb
-rw-r----- 1 root root 16M Oct 12 17:34 log.0000007866
-rw-r----- 1 root root 1.2M Oct 12 17:34 __db.005
-rw-r----- 1 root root 2.1M Oct 12 17:34 __db.004
-rw-r----- 1 root root 2.6M Oct 12 17:34 __db.003
-rw-r----- 1 root root 392K Oct 12 17:34 __db.002
3.刪掉這些文件
[root@db02 db02]# rm crfclust.bdb
rm: remove regular file `crfclust.bdb'? yes
[root@db02 db02]# du -sh
5.3G .
4.啟動ora.crf服務
[root@db02 db02]# /u01/app/11.2.0/grid/bin/crsctl start res ora.crf -init
CRS-2672: Attempting to start 'ora.crf' on 'db02'
CRS-2676: Start of 'ora.crf' on 'db02' succeeded
重新查看這些文件,會發現文件已經初始化了
[root@db02 db02]# ls -ltrh *.bdb
-rw-r----- 1 root root 8.0K Oct 12 17:35 crfconn.bdb
-rw-r----- 1 root root 128K Oct 12 17:35 crfclust.bdb
-rw-r----- 1 root root 8.0K Oct 12 17:35 crfhosts.bdb
-rw-r----- 1 root root 8.0K Oct 12 17:35 crfts.bdb
-rw-r----- 1 root root 8.0K Oct 12 17:35 crfalert.bdb
-rw-r----- 1 root root 8.0K Oct 12 17:35 crfcpu.bdb
-rw-r----- 1 root root 8.0K Oct 12 17:35 crfloclts.bdb
[root@db02 db02]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 193G 7.1G 176G 4% /
tmpfs 100G 24G 77G 24% /dev/shm
/dev/sda1 190M 81M 96M 46% /boot
/dev/sda7 261G 2.9G 245G 2% /home
/dev/sda6 3.9G 11M 3.6G 1% /tmp
/dev/sda3 77G 13G 60G 18% /u01
[root@db02 db02]#
[root@db02 db02]# pwd
/u01/app/11.2.0/grid/crf/db/db02
注意集群的每個節點都做一遍

一些不嚴格測試
我通過zabbix監控數據庫io的時候也發現,即使數據庫沒有任何操作,服務器對根目錄的io穩定在150kb/s的寫,剛開始沒想通為什么會出現這種情況,通過上面的排查,才知道集群某些服務(例如chm)會持續寫日志,所以才會有持續的io寫。
crfclust.bdb在10min內從4m到40m,速度也長的蠻快的,所以應該定期清理。
-rw-r----- 1 root root 4.2M May 22 11:33 crfclust.bdb
-rw-r----- 1 root root 41M May 22 11:42 crfclust.bdb

通過iostat -dxk 20 2測試關掉chm服務前后的磁盤io,這里舍棄第一次的展示結果,因為第一次出現的結果是系統啟動以來的平均值,沒有參考價值
關閉chm服務
開啟chm服務
可以看到開啟chm服務,會占用100多kb/s的磁盤io,這也就解釋了數據庫服務器沒有任何操作情況下,仍然有io的原因。目前不清楚關掉這個chm服務是否對數據庫有影響,謹慎起見還是讓它打開,僅在清理這些文件時臨時關閉即可。
轉自 https://blog.csdn.net/weixin_34209851/article/details/93950106


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM