博客
关于我
2017-07-17 DBA日记,凭直觉发现CRSDG的磁盘问题及处理
阅读量:624 次
发布时间:2019-03-13

本文共 2224 字,大约阅读时间需要 7 分钟。

问题:2017-07-14 8:00左右,收到短信报警“数据库db1的安装目录/u01可用空间低于5%”,是什么原因导致的?

分析:

2.1 具体描述:2017-07-14 8:00左右, 数据库db1的安装目录/u01可用空间低于5%

2.2 收集数据:ssh登录到db1所在服务器使用命令,显示那个日志目录占用的空间最多,并逐层目录查找:cd /u01du -sk *

查找结果,发现在asm日志目录.\trace空间占用最大进入到trace目录,发现有一个trace文件大小为10G,文件改变时间为当前时间。除了这个trace文件外,有一个alert_+ASM1.log的文件更新时间也是当前时间。

2.3 分析:大小为10G的trace文件是慢慢累积而成,还是由于慢个事件迅速增长到10G。

另一个值得在意的地方就是trace文件与alert文件的更新时间不断变化。

2.4 结论:基本可以断定清除10g的trace文件能解除报警,但未必能发现报警代表的更深层次原因。采用后续行动,进一步分析trace文件的容量是迅速生成还是慢慢累积的?

3.1 具体描述:大小为10G的trace文件,是什么原因生成的?

3.2 收集数据:打开大小为10g的trace文件,查看内容,由于文件太大,打开失败。打开alert文件,查看内容,发现如下错误信息:NOTE: Attempting voting file relocation on diskgroup CRSDGNOTE: Failed voting file relocation on diskgroup CRSDGNOTE: Attempting voting file relocation on diskgroup CRSDG...

检查这些日志的最早生成时间及持续多长,频率有多大,信息如下:发现自2017-05-16 HP存储出现故障后,该报警信息不断出现。

频率:每20秒报一次警。

查看crsdg,asm disk状态:select * from v$asm_disk; 发现在有两个磁盘的mount_status:IGNORED

3.3 分析:在2017-05-16, HP存储出现故障时,CRSDG的磁盘由3个可用,变成只得一个可用。即使用存储故障修复后,oracle asm也不能自动重新识别,导致集群的voting file重新放置失败。

IGNORED - Disk是系统检测到的,但oracle asm没有识别它的原因可能是:

  • 安装的系统库探测到同一个盘盘,;
  • 或者是oracle asm库在中探测到的盘盘的成员信息与库中记录的不一致;
  • 或者oracle ASM认为盘盘的成员信息已经无效。

进一步确认,查看support.oracle.com,文章“V$ASM_DISK View Shows Some Disk Header Status as IGNORED and Group Number as "0"). (文档 ID 1299866.1)”给出详细说明,摘录如下:

这不是正常情况,但可能会在以下情况下发生:1] 如果从同一个磁盘组(创建了普通冗余的)中强制移除了多个盘盘(总共超过两个),这些盘盘仍然显示为MEMBER和组号为0。如果一个新的盘盘被添加到磁盘组,或现有盘盘以不同的顺序被添加,可能存在同一盘盘被分配给被移除前未被添加的盘盘的可能性。这种情况可能发生在SAN故障群或Exadata cell节点故障。

2] 在RAC环境中,到一个已存在的磁盘组中的_ASM盘盘通过节点添加,若某个节点未看到新添加的盘盘,操作将以“ORA-15075盘盘不可见集群-wide”报错,但添加的盘盘仍然显示为MEMBER状态。如果大量添加了后,新盘盘可能会分配到最初失败的节点的盘盘名字。

3] 错误建设的_multipath配置,ASM盘盘字符串中可以看到多个单设备路径。

4.1 具定描述:crsdg那些offline的盘盘是否出现硬件故障。

4.2 收集数据:使用root用户,执行命令ioscan -fnkCdisk 检查盘盘的路径状态,发现有的盘盘路径状态是NO_HW

4.3 分析:NO_HW表示地址的硬件不再响应。

4.4 结论:CRSDG中ignore的盘盘,在OS层、存储层上已经被识别为无效设备。

  1. 解决方案:5.1 根据oracle的官方文档,制定如下的解决方案:修复损坏的路径,让OS层重新识别盘盘执行alter diskgroup crsdg add盘盘 'path' force;5.2 但当时处理该事件没有进行充分的调研oracle官方处理方法,在与存储管理员确认后,采用重启主机的方法,在修复路径后,重启DB实例,发现还是没有自动识别盘盘,于是采添加了立即新增了两个盘盘,并划入到crsdg中,最后alert日志中的报错“Failed voting file relocation on diskgroup CRSDG”消除。并将ignore的盘盘权限及用户组变更回原始状态,如root sys, 然后由存储管理员回收。

  2. 引用:V$ASM_DISK View Shows Some Disk Header Status as IGNORED and Group Number as "0". (文档 ID 1299866.1)

转载地址:http://sddoz.baihongyu.com/

你可能感兴趣的文章
Objective-C实现混沌算法(附完整源码)
查看>>
Objective-C实现滑动平均滤波(附完整源码)
查看>>
Objective-C实现牛顿下山法(附完整源码)
查看>>
Objective-C实现牛顿插值法(附完整源码)
查看>>
Objective-C实现牛顿法算法(附完整源码)
查看>>
Objective-C实现状态模式(附完整源码)
查看>>
Objective-C实现狄克斯特拉算法(附完整源码)
查看>>
Objective-C实现猜数字算法(附完整源码)
查看>>
Objective-C实现猴子爬山算法(附完整源码)
查看>>
Objective-C实现生产者和消费者问题(附完整源码)
查看>>
Objective-C实现生产者消费者问题(附完整源码)
查看>>
Objective-C实现生成崩溃dump文件 (附完整源码)
查看>>
Objective-C实现生成数组的所有不同排列算法(附完整源码)
查看>>
Objective-C实现生成正态分布数据(附完整源码)
查看>>
Objective-C实现生成随机高斯分布(附完整源码)
查看>>
Objective-C实现用 PIL 改变对比度算法(附完整源码)
查看>>
Objective-C实现用二维数组实现矩阵的转置(附完整源码)
查看>>
Objective-C实现用半正弦公式计算两个坐标之间的距离算法 (附完整源码)
查看>>
Objective-C实现由伪栈表示的队列算法(附完整源码)
查看>>
Objective-C实现由列表表示的队列算法(附完整源码)
查看>>