• Oracle


    今天在检查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

  • 相关阅读:
    [转]谁抢了我的焦点
    VBA 对比两行数据
    VBA 自动得到分数
    VBA Excel 对比两列数据
    将图片读到二进制
    [转]常用字符与ASCII代码对照表
    [转]Java 运算符的优先级
    SqlBulkCopy 快速插入数据
    多列转一行
    C# 线程小结
  • 原文地址:https://www.cnblogs.com/ritchy/p/11676932.html
Copyright © 2020-2023  润新知