今天在检查oracle rac集群时,突然才发现服务器的根目录下面占用了很多空间,照道理不应该出现这种情况,初步猜想可能是哪个日志或跟踪文件太大导致。
切换到跟目录,使用du -sh *来一层一层查看到底是哪个文件占用了这么多空间,最后定位到目录/u01/app/11.2.0/grid/crf/db/<hostname>
使用ls -lSrh对文件进行排序,发现“罪魁祸首”是crfclust.bdb

[root@sz-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@sz-db02 sz-db02]# pwd
/u01/app/11.2.0/grid/crf/db/sz-db02
[root@sz-db02 sz-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@sz-db02 sz-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 sz-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@sz-db02 sz-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 sz-db02.ldb
解决手段
1.检查ora.crf服务
[root@sz-db02 sz-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 sz-db02
2.停掉ora.crf服务
[root@sz-db02 sz-db02]# /u01/app/11.2.0/grid/bin/crsctl stop res ora.crf -init
CRS-2673: Attempting to stop 'ora.crf' on 'sz-db02'
CRS-2677: Stop of 'ora.crf' on 'sz-db02' succeeded
[root@sz-db02 sz-db02]#
[root@sz-db02 sz-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@sz-db02 sz-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 sz-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@sz-db02 sz-db02]# rm crfclust.bdb
rm: remove regular file `crfclust.bdb'? yes
[root@sz-db02 sz-db02]# du -sh
5.3G .
4.启动ora.crf服务
[root@sz-db02 sz-db02]# /u01/app/11.2.0/grid/bin/crsctl start res ora.crf -init
CRS-2672: Attempting to start 'ora.crf' on 'sz-db02'
CRS-2676: Start of 'ora.crf' on 'sz-db02' succeeded
重新查看这些文件,会发现文件已经初始化了
[root@sz-db02 sz-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@sz-db02 sz-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@sz-db02 sz-db02]#
[root@sz-db02 sz-db02]# pwd
/u01/app/11.2.0/grid/crf/db/sz-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

Oracle - crfclust.bdb文件太大的更多相关文章

  1. ORACLE 监听日志文件太大停止写监听日志引起数据库连接不上问题

    生产库监听日志文件太大(达到4G多),发现oracle停止写监听日志,检查参数log_file,log_directory,log_status 均正常,数据库运行也正常. 经确认确实为监听日志过大引 ...

  2. 手工删除crfclust.bdb文件

    环境:RHEL 6.5 + Oracle 11.2.0.4 RAC 现象:巡检发现自己的测试环境节点2的空间使用率过高,进一步查询,发现大文件是GI目录下crfclust.bdb文件. crfclus ...

  3. 生成的API分析文件太大。我们无法在交付前验证您的API使用信息。这只是通知信息。

    这次使用了APICloud平台来开发移动APP, 发布的时候在api控制台云编译成ipa后,这次使用apple提供的Application Loader工具提交apa文件到iTunes上去,提交结束的 ...

  4. Sqlserver2005日志文件太大,使其减小的方法

    Sqlserver2005日志文件太大,使其减小的方法: 运行下面的三行 dbName为数据库名: backup log dbNamewith NO_LOG backup log dbNamewith ...

  5. apache日志文件太大的问题

    apache日志文件太大的问题 处理Apache日志的两种方法 rotatelogs 是 Apache 2.2 中自带的管道日志程序 rotatelogs [ -l ] logfile [ rotat ...

  6. Oracle 监听器日志文件过大导致监听异常

    Oracle 监听器日志文件过大导致监听异常 db版本:11.2.0.1 os版本:windows2008 现象: 应用异常,无法连接数据库.登陆数据库服务器,查看监听已经断掉.尝试重启监听,重启失败 ...

  7. Mysql文件太大导入失败解决办法总结

    Mysql文件太大导入失败解决办法总结 在使用phpmyadmin导入数据库的时候可能会碰到由于数据库文件太大而无法导入的问题! 英文提示如下:File exceeds the maximum all ...

  8. jvm内存快照dump文件太大,怎么分析

    1.场景 通常,使用eclipse的mat图形化工具打开dump的时候都会内存溢出. 对于比较小的dump,eclipse可以打开,但一旦dump文件太大,eclipse就有点束手无策. 这时候怎么办 ...

  9. [转]MySql ibdata1文件太大如何缩小

    From : http://blog.chinaunix.net/uid-24373487-id-4223322.html 原文地址:MySql ibdata1文件太大如何缩小 作者:emailwht ...

随机推荐

  1. 2017 CCPC秦皇岛 G题 Numbers

    DreamGrid has a nonnegative integer . He would like to divide  into nonnegative integers  and minimi ...

  2. CSU OJ2151 集训难度

    小L正在组织acm暑假集训,但众所周知,暑假集训的萌新中有OI神犇,也有暑假才开始学算法的萌新,如果统一集训的难度,无法很好地让萌新们得到训练,所以小L想了一个办法,根据每次测试的情况,改变萌新们的集 ...

  3. 基于STM32F1 的BASIC解码实验 vb basic 液晶显示执行过程及结果

    基于STM32F1 的BASIC解码实验 1.basic程序以文件形式存储 2.程序文件存储在sd卡 3.解释结果显示在液晶屏上 主函数部分 int main(void){ u16 i,j; dela ...

  4. 进程-(process)、线程-(Thread)

    进程和线程之间的区别: 内存之间的区别: 进程之间不可以共享内存空间,每个进程都有各自独立的内存空间: 线程之间则是可以共享一个进程里的内存空间: 通信机制方面的区别 默认情况下,进程之间很难互通的, ...

  5. 十年Java程序员-带你走进Java虚拟机-类加载机制

    类的生命周期 1.加载 将.class文件从磁盘读到内存 2.连接 2.1 验证 验证字节码文件的正确性 2.2 准备 给类的静态变量分配内存,并赋予默认值 2.3 解析 类装载器装入类所引用的其它所 ...

  6. mysql中where和having子句的区别和具体用法

    1.mysql中的where和having子句的区别 having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having ...

  7. 【Spring】只想用一篇文章记录@Value的使用,不想再找其它了(附思维导图)

    1 简介 不得不说,Spring为大家提供许多开箱即用的功能,@Value就是一个极其常用的功能,它能将配置信息注入到bean中去.即使是一个简单的功能,Spring也提供了丰富的注入类型和形式.我经 ...

  8. C# List集合 GroupBy分组

    var grpBalance = listBalance.GroupBy(m => new { m.MerChantId, m.Name}).Distinct().Select(t => ...

  9. 二维码生成插件qrious

    1.qrious是基于canvas的纯JS二维码生成插件 1.1什么是二维码 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的B ...

  10. Cortex-A7 MPCore 简介与处理器运行模型

    Cortex-A7 MPcore 处理器支持 1~4 核,通常是和 Cortex-A15 组成 big.LITTLE 架构的,Cortex-A15 作为大核负责高性能运算,比如玩游戏啥的,Cortex ...