zoukankan      html  css  js  c++  java
  • Oracle

    问题排查


    今天在检查oracle rac集群时,突然才发现服务器的根目录下面占用了很多空间,照道理不应该出现这种情况,初步猜想可能是哪个日志或跟踪文件太大导致。

    $ df -h
    Filesystem                    Size  Used Avail Use% Mounted on
    /dev/mapper/vg_fmdb1-lv_root  214G  141G   63G  70% /


    切换到跟目录,使用du -sh *来一层一层查看到底是哪个文件占用了这么多空间,最后定位到目录/u01/app/11.2.0/grid/crf/db/<hostname>
    使用ls -lSrh对文件进行排序,发现“罪魁祸首”是crfclust.bdb

    -rwxrwxr-x 1 grid oinstall  1.3G May 22 11:04 crfts.bdb
    -rwxrwxr-x 1 grid oinstall  1.9G May 22 11:04 crfhosts.bdb
    -rwxrwxr-x 1 grid oinstall  1.9G May 22 11:04 crfalert.bdb
    -rwxrwxr-x 1 grid oinstall  2.0G May 22 11:03 crfloclts.bdb
    -rwxrwxr-x 1 grid oinstall  2.3G May 22 11:04 crfcpu.bdb
    -rwxrwxr-x 1 grid oinstall   79G May 22 11:03 crfclust.bdb

    查询相关资料(我百度的),这几个文件是oracle系统服务Cluster Health Monitor(CHM)生成的,主要记录节点的cpu、内存等相关信息,该类文件会慢慢长大,而我这个生产库已经跑了4年了,都已经长到了快80G。解决办法就是删掉它。

    解决手段


    1.检查ora.crf服务
    /u01/app/11.2.0/grid/bin/crsctl stat res ora.crf -init -t

    2.停掉ora.crf服务
    /u01/app/11.2.0/grid/bin/crsctl stop res ora.crf -init

    3.删掉这些文件
    rm *.bdb

    4.启动ora.crf服务
    /u01/app/11.2.0/grid/bin/crsctl start res ora.crf -init

    重新查看这些文件,会发现文件已经初始化了
    ls -ltrh *.bdb

    -rw-r----- 1 root root 8.0K May 22 11:32 crfconn.bdb
    -rw-r----- 1 root root  64K May 22 11:33 crfts.bdb
    -rw-r----- 1 root root  84K May 22 11:33 crfhosts.bdb
    -rw-r----- 1 root root 4.2M May 22 11:33 crfclust.bdb
    -rw-r----- 1 root root 8.0K May 22 11:33 repdhosts.bdb
    -rw-r----- 1 root root  92K May 22 11:33 crfloclts.bdb
    -rw-r----- 1 root root  92K May 22 11:33 crfcpu.bdb
    -rw-r----- 1 root root  84K May 22 11:33 crfalert.bdb


    注意集群的每个节点都做一遍
    好了,接下来把生产库所有库都撸一遍呗。

    一些不严格测试


    我通过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服务

    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
    dm-0              0.00     0.00    0.00    5.25     0.00    21.00     8.00     0.00    0.34   0.10   0.05


    开启chm服务

    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
    dm-0              0.00     0.00    0.00   40.45     0.00   161.80     8.00     0.02    0.40   0.02   0.10


    可以看到开启chm服务,会占用100多kb/s的磁盘io,这也就解释了数据库服务器没有任何操作情况下,仍然有io的原因。目前不清楚关掉这个chm服务是否对数据库有影响,谨慎起见还是让它打开,仅在清理这些文件时临时关闭即可。

  • 相关阅读:
    SQL
    第九章
    第三章 表单
    第二章 表格,列表,媒体元素
    HTML5基础
    Java第一本书总复习
    字符串
    人机猜拳
    类的无参方法
    类和对象
  • 原文地址:https://www.cnblogs.com/ddzj01/p/10905505.html
Copyright © 2011-2022 走看看