近日遇到Exadata 的磁盘故障,在更新完physical disk后,其中一个griddisk没有自动添加的到ASM实例中,在问题解决后,整理出整个问题分析的思路。

1.在磁盘失败的情况下,如果有LED灯亮,如果怀疑是硬件问题需要首先收集硬件日志

首先需要使用sundiag.sh脚本收集cell硬件的信息,检查是否有硬件损坏,并定位具体设备,更换故障设备。

(注:sundiag.sh是oracle提供的硬件检查脚本,下面是在compute node上执行,然后到每一个compute node和cell的/tmp下找到生成的日志)

  1. #dcli -l root -g /opt/oracle.SupportTools/onecommand/all_group "/opt/oracle.SupportTools/sundiag.sh"
  2. For example
  3. dmorlcel09: Success in AdpEventLog
  4. dmorlcel09:
  5. dmorlcel09: Exit Code: 0x00
  6. ……
  7. dmorlcel09: sundiag_2012_07_10_06_08/dmorlcel09_megacli64-status_2012_07_10_06_08.out
  8. dmorlcel09: ==============================================================================
  9. dmorlcel09: Done the report files are in bzip2 compressed /tmp/sundiag_2012_07_10_06_08.tar.bz2
  10. dmorlcel09:

2.但是在还盘后问题没有解决, ASM不能自动增加griddisk到磁盘组, 下面是我的分析步骤

  1. $ sqlplus / as sysasm
  2. (1)Check sum of griddisk  
  3. column "Diskgroup" format A30
  4. column "Imbalance" format 99.9 Heading "Percent|Imbalance"
  5. column "Variance" format 99.9 Heading "Percent|Disk Size|Variance"
  6. column "MinFree" format 99.9 Heading "Minimum|Percent|Free"
  7. column "DiskCnt" format 9999 Heading "Disk|Count"
  8. column "Type" format A10 Heading "Diskgroup|Redundancy"
  9. SELECT g.name "Diskgroup",
  10. 100*(max((d.total_mb-d.free_mb)/d.total_mb)-min((d.total_mb-d.free_mb)/d.total_mb))/max((d.total_mb-d.free_mb)/d.total_mb) "Imbalance",
  11. 100*(max(d.total_mb)-min(d.total_mb))/max(d.total_mb) "Variance",
  12. 100*(min(d.free_mb/d.total_mb)) "MinFree",
  13. count(*) "DiskCnt",
  14. g.type "Type"
  15. FROM v$asm_disk d, v$asm_diskgroup g
  16. WHERE d.group_number = g.group_number and
  17. d.group_number <> 0 and
  18. d.state = 'NORMAL' and
  19. d.mount_status = 'CACHED'
  20. GROUP BY g.name, g.type;
  21. ---
  22. Diskgroup          Percent Imbalance   Percent Disk Size Variance   Minimum Percent Free  Disk Count Redundancy
  23. ----------------        ---------         ---------                  -------              ----- ----------
  24. DBFS_DG               84.6                 .0                        99.8              220   NORMAL
  25. DG_DAT1                7.1                 .0                        8.9               264  NORMAL
  26. DG_DAT2                 .1                 .0                        65.1              263  NORMAL                       <<<<<<<<This lack one disk then DG_DAT1
  27. (2) We can find one griddisk isn’t mounted.
  28. set line 300
  29. column "PATH" format A100
  30. SQL> select name, path, header_status from v$asm_disk order by path;
  31. DG_DAT1_CD_11_DM02CEL04        o/192.168.10.34/DG_DAT1_CD_11_dm02cel04                      MEMBER
  32. DG_DAT1_CD_00_DM02CEL04        o/192.168.10.34/DG_DAT1_CD_00_dm02cel04                      MEMBER
  33. o/192.168.10.34/DG_DAT2_CD_00_dm02cel04                FORMER          <<<<<<<<<<<<<<<<<<  This status is unnormal
  34. DG_DAT2_CD_01_DM02CEL04        o/192.168.10.34/DG_DAT2_CD_01_dm02cel04                      MEMBER
  35. ------------------------------------
  36. Comments
  37. FORMER status  indicate Disk was once part of a disk group but has been dropped cleanly from the group. It may be added to a new disk group with the ALTER DISKGROUP statement.
  38. (3)Determine DG_DAT2_CD_00_dm02cel04 was missed 
  39. select NAME,HEADER_STATUS,MOUNT_STATUS,STATE,GROUP_NUMBER from V$ASM_DISK where NAME like '%CD_03_DM01CEL03'; <<<<<<This need modify as cell name
  40. NAME                                                         HEADER_STATUS            MOUNT_STATUS   STATE            GROUP_NUMBER
  41. ------------------------------------------------------------ ------------------------ -------------- ---------------- ------------
  42. DG_DAT1_CD_00_DM02CEL04                                      MEMBER                   CACHED         NORMAL                      2
  43. <<<<<<DG_DAT2_CD_00_dm02cel04 is missed

3.解决方法及步骤

Exadata硬盘错误更换后的ASM磁盘组重新添加操作顺利完成。 
在exadata上面通过grid用户把RECO_DM01_CD_03_DM01CEL03重新加入到ASM中。 
整个操作过程如下:

(1)、操作之前查询的磁盘组相关信息:

  1. SQL> select name,header_status,mount_status,state,group_number from v$asm_disk where name like '%CD_03_DM01CEL03';
  2. NAME                                       HEADER_STA MOUNT_S STATE    GROUP_NUMBER
  3. ------------------------------ ---------- ------- -------- ------------
  4. DBFS_DG_CD_03_DM01CEL03          MEMBER     CACHED  NORMAL              2
  5. DATA_DM01_CD_03_DM01CEL03      MEMBER     CACHED  NORMAL              1

(2)、把硬盘重新添加回磁盘组:

  1. SQL> alter diskgroup RECO_DM01 add disk 'o/192.168.252.5/RECO_DM01_CD_03_dm01cel03' rebalance power 10;
  2. Diskgroup altered.

(3)、添加之后,查看磁盘组信息:

  1. SQL> select name,header_status,mount_status,state,group_number from v$asm_disk where name like '%CD_03_DM01CEL03';
  2. NAME                                                         HEADER_STATUS            MOUNT_STATUS   STATE            GROUP_NUMBER
  3. ------------------------------------------------------------ ------------------------ -------------- ---------------- ------------
  4. DBFS_DG_CD_03_DM01CEL03                                         MEMBER                   CACHED         NORMAL                      2
  5. RECO_DM01_CD_03_DM01CEL03                                    MEMBER                   CACHED         NORMAL                      3
  6. DATA_DM01_CD_03_DM01CEL03                                    MEMBER                   CACHED         NORMAL                      1

4.故障原因分析,分析Alert+ASM.log

  1. Name
  2. --------
  3. === ODM Data Collection ===
  4. NOTE: cache opening disk 192 of grp 3: DG_DAT2_CD_00_DM02CEL04 path:o/192.168.10.34/DG_DAT2_CD_00_dm02cel04
  5. NOTE: Attempting voting file refresh on diskgroup DG_DAT2
  6. GMON querying group 3 at 19 for pid 19, osid 12228
  7. SUCCESS: refreshed membership for 3/0xa4c726c6 (DG_DAT2)
  8. Tue Jun 05 22:33:40 2012
  9. NOTE: Attempting voting file refresh on diskgroup DG_DAT2
  10. Tue Jun 05 22:33:43 2012
  11. SUCCESS: /* Exadata Auto Mgmt: ADD ASM Disk in given FAILGROUP */
  12. alter diskgroup DG_DAT2 add
  13. failgroup DM02CEL04
  14. disk 'o/192.168.10.34/DG_DAT2_CD_00_dm02cel04'
  15. name DG_DAT2_CD_00_DM02CEL04
  16. rebalance nowait
  17. NOTE: starting rebalance of group 3/0xa4c726c6 (DG_DAT2) at power 4
  18. Starting background process ARB0
  19. Tue Jun 05 22:33:46 2012
  20. ARB0 started with pid=39, OS id=5039
  21. NOTE: assigning ARB0 to group 3/0xa4c726c6 (DG_DAT2) with 4 parallel I/Os                  <<<<<<<<<<<<<<<我以为是在两个griddisk同时reblance的时候产生I/O压力导致的故障的griddisk添加失败
  22. NOTE: F1X0 copy 2 relocating from 23:2 to 249:2 for diskgroup 3 (DG_DAT2)
  23. NOTE: F1X0 copy 3 relocating from 249:2 to 255:9441 for diskgroup 3 (DG_DAT2)
  24. ......
  25. Tue Jun 05 22:36:04 2012                                                                                          <<<<<<<当时认为这个分析就是对的,但是后来发现其实root cause是在硬盘最开始报错时就决定的
  26. NOTE: stopping process ARB0                                                                                     <<<<<<<<<<<<<<<<<<<<<<<
  27. NOTE: rebalance interrupted for group 3/0xa4c726c6 (DG_DAT2)                                   <<<<<<<<<<<<<<<<<<<<<<< rebalance interrupted
  28. NOTE: membership refresh pending for group 3/0xa4c726c6 (DG_DAT2)
  29. Tue Jun 05 22:36:11 2012
  30. GMON querying group 3 at 22 for pid 19, osid 12228
  31. SUCCESS: refreshed membership for 3/0xa4c726c6 (DG_DAT2)
  32. Tue Jun 05 22:36:17 2012
  33. NOTE: Attempting voting file refresh on diskgroup DG_DAT2
  34. Tue Jun 05 23:19:15 2012
  35. NOTE: cache closing disk 192 of grp 3: DG_DAT2_CD_00_DM02CEL04
  36. Tue Jun 05 23:19:15 2012
  37. NOTE: membership refresh pending for group 3/0xa4c726c6 (DG_DAT2)
  38. GMON querying group 3 at 23 for pid 19, osid 12228
  39. GMON querying group 3 at 24 for pid 19, osid 12228
  40. NOTE: Disk  in mode 0x8 marked for de-assignment
  41. SUCCESS: refreshed membership for 3/0xa4c726c6 (DG_DAT2)

5.Root Cause的最终分析

这个是由于一个physical disk最终划分到两个griddisk,当磁盘某一个扇区损坏,导致其中的一个griddisk直接被drop掉,另一个griddisk受到影响,但是并不会被drop,而是报警,在更坏新physical disk后,未损坏部分的griddisk直接被自动添加,而另一个必须手动添加。

针对这个问题深入分析,磁盘删除后会不会被ASM自动添加,取决于磁盘删除的方式

  1. alter diskgroup DG_DAT2 drop disk DG_DAT2_CD_00_DM02CEL04             <<<<<<<<<<<<<<<<<<<<<<没有force参数的,系统不会再次尝试自动添加磁盘
  2. alter diskgroup DG_DAT2 drop force disk DG_DAT2_CD_00_DM02CEL04       <<<<<<<<<<<<<<<<<<<<<<有force参数,系统认为不是正常删除的磁盘,所以会尝试自动添加新磁盘

下面是继续分析,问题发生时,具体是什么问题导致的磁盘drop,才能分析出,后续为什么不能自动添加到ASM磁盘组中 
=== 收集alert_+ASM.log信息,问题发生时 。这部分显示的是能正常被自动添加的grid disk===

  1. Tue Jun 05 16:34:56 2012
  2. XDWK started with pid=30, OS id=13410
  3. WARNING: Exadata Auto Management: OS PID: 13410 Operation ID: 3131: ONLINE disk DG_DAT1_CD_00_DM02CEL04 in diskgroup DG_DAT1 Failed
  4. SQL    :
  5. Cause  :
  6. Action : Check alert log to see why this operation failed.
  7. Also check process trace file for matching Operation ID.
  8. ...................................
  9. Tue Jun 05 22:25:59 2012
  10. WARNING: Exadata Auto Management: OS PID: 20903 Operation ID: 3246: ONLINE disk DG_DAT1_CD_00_DM02CEL04 in diskgroup DG_DAT1 Failed
  11. SQL    :
  12. Cause  :
  13. Action : Check alert log to see why this operation failed.
  14. Also check process trace file for matching Operation ID.

===  收集alert_+ASM.log信息,问题发生时 。这部分显示的是不能正常被自动添加的grid disk===

  1. Tue Jun 05 13:35:58 2012
  2. XDWK started with pid=30, OS id=26485
  3. SQL> /* Exadata Auto Mgmt: Proactive DROP ASM Disk */                                     <<<<<<<<<<<<<<<<<<<<<<<<<Exadata Auto Mgmt: Proactive DROP ASM Disk
  4. alter diskgroup DG_DAT2 drop
  5. disk DG_DAT2_CD_00_DM02CEL04
  6. NOTE: GroupBlock outside rolling migration privileged region
  7. NOTE: requesting all-instance membership refresh for group=3
  8. Tue Jun 05 13:36:00 2012
  9. GMON updating for reconfiguration, group 3 at 10 for pid 30, osid 26485
  10. NOTE: group 3 PST updated.
  11. Tue Jun 05 13:36:00 2012
  12. NOTE: membership refresh pending for group 3/0xa4c87c09 (DG_DAT2)
  13. GMON querying group 3 at 11 for pid 19, osid 15396
  14. SUCCESS: refreshed membership for 3/0xa4c87c09 (DG_DAT2)
  15. SUCCESS: /* Exadata Auto Mgmt: Proactive DROP ASM Disk */
  16. alter diskgroup DG_DAT2 drop
  17. disk DG_DAT2_CD_00_DM02CEL04
  18. NOTE: Attempting voting file refresh on diskgroup DG_DAT2
  19. NOTE: starting rebalance of group 3/0xa4c87c09 (DG_DAT2) at power 4
  20. Starting background process ARB0
  21. Tue Jun 05 13:36:05 2012
  22. ARB0 started with pid=38, OS id=26796
  23. NOTE: assigning ARB0 to group 3/0xa4c87c09 (DG_DAT2) with 4 parallel I/Os
  24. NOTE: membership refresh pending for group 2/0xa4c87c08 (DG_DAT1)
  25. GMON querying group 2 at 12 for pid 19, osid 15396
  26. SUCCESS: refreshed membership for 2/0xa4c87c08 (DG_DAT1)
  27. Tue Jun 05 13:36:11 2012
  28. NOTE: Attempting voting file refresh on diskgroup DG_DAT1
  29. Tue Jun 05 13:49:26 2012
  30. Starting background process XDWK
  31. Tue Jun 05 13:49:26 2012
  32. XDWK started with pid=30, OS id=25037
  33. Tue Jun 05 14:04:28 2012
  34. Starting background process XDWK
  35. Tue Jun 05 14:04:29 2012
  36. XDWK started with pid=39, OS id=26978
  37. Tue Jun 05 14:19:31 2012
  38. Starting background process XDWK
  39. Tue Jun 05 14:19:31 2012
  40. XDWK started with pid=30, OS id=28260
  41. Tue Jun 05 14:34:34 2012
  42. Starting background process XDWK
  43. Tue Jun 05 14:34:34 2012
  44. XDWK started with pid=39, OS id=32093
  45. Tue Jun 05 14:43:59 2012
  46. NOTE: GroupBlock outside rolling migration privileged region
  47. NOTE: requesting all-instance membership refresh for group=3
  48. Tue Jun 05 14:44:22 2012
  49. GMON updating for reconfiguration, group 3 at 13 for pid 30, osid 21558
  50. Tue Jun 05 14:44:23 2012
  51. NOTE: group 3 PST updated.
  52. Tue Jun 05 14:44:34 2012
  53. SUCCESS: grp 3 disk DG_DAT2_CD_00_DM02CEL04 emptied
  54. NOTE: erasing header on grp 3 disk DG_DAT2_CD_00_DM02CEL04
  55. NOTE: process _x000_+asm1 (21558) initiating offline of disk 192.3915944441 (DG_DAT2_CD_00_DM02CEL04) with mask 0x7e in group 3
  56. NOTE: initiating PST update: grp = 3, dsk = 192/0xe96891f9, mask = 0x6a, op = clear
  57. Tue Jun 05 14:44:34 2012

6.总结

开始自己考虑到一个celldisk被分为两个griddisk,在reblance的时候一定是导致了I/O争用的问题导致了其中一个加载失败,但是后来重新分析日志,发现问题不在这里。

从源头开始查找,查找该griddisk第一报错的时候是什么原因,最后发现这行日志,这里就引出另一个问题,ASM实例磁盘组删除的问题,所以在分析问题没有足够说服力的时候,尝试从头来,换个思路,兴许,问题就解决了。

  1. alter diskgroup DG_DAT2 drop disk DG_DAT2_CD_00_DM02CEL04
本文转自 hsbxxl 51CTO博客,原文链接:http://blog.51cto.com/hsbxxl/931731,如需转载请自行联系原作者

Exadata Griddisk Can't be auto added相关推荐

  1. oracle 11.2.0.4 mos,Oracle 11.2.0.4 最终版本发布以来的 Oracle PSU 列表

    Oracle 11.2.0.4 最终版本发布以来的 Oracle PSU 列表 Oracle 11g R2 是目前客户的主流版本,这个版本后续发布了一系列的补丁,今天列表整理一下,供大家参考. 云和恩 ...

  2. 【读书笔记《Bootstrap 实战》】3.优化站点资源、完成响应式图片、让传送带支持手势...

    A.优化站点资源 速度很重要.用户很关心.我们的站点必须加载够快,否则用户就会走人.SEO 也很重要.我们的站点必须加载够快,否者搜索排名就会下降. 明白了这样,我们就来清点一下 [Bootstrap ...

  3. 单元测试试图告诉我们关于 Activity 的什么事情:第二部分

    本文讲的是单元测试试图告诉我们关于 Activity 的什么事情:第二部分, Activity 和?Fragment,可能是因为一些奇怪的历史巧合,从 Android 推出之时起就被视为构建 Andr ...

  4. 解决GitHub文件无法下载的问题

    参考链接博客 GitHub无法下载和显示图片 1.去https://www.ipaddress.com/ 2.箭头处输入raw.githubusercontent.com查询到真实IP地址 3.Win ...

  5. exadata的xdwk进程

    参考文档: Auto disk management feature in Exadata (Doc ID 1484274.1) EXADATA AUTO MANAGEMENT INITIATE DR ...

  6. Oracle Exadata 一体机关机过程(虚拟机环境)

    编辑好cell,db节点信息文件all_group,dbs_group,cell_group [root@idc-dns1 exatest]# pwd /root/exatest [root@idc- ...

  7. Unity2017.1官方UGUI文档翻译——Auto Layout

    Auto Layout 自动布局 The Rect Transform layout system is flexible enough to handle a lot of different ty ...

  8. 【Oracle】Exadata虚拟机配置(一)

    Exadata是Oracle软硬结合的一体机,通过自己的机子不可能全然模拟出来,这里搭建的虚拟机仅仅是一个简单的.能够供我们学习Exadata的环境. 最简单能够模拟的Exadata虚拟机须要两个节点 ...

  9. exadata磁盘组无法mount恢复---惜分飞

    标题:Oracle Exadata坏盘导致磁盘组无法mount恢复 作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.] 接到朋友求救有客户oracle exa ...

最新文章

  1. 报名 | TensorFlow China Roadshow 正式开启
  2. JQuery UI之Autocomplete(2)后端获取数据
  3. 异常检测(Anomaly detection): 异常检测算法(应用高斯分布)
  4. gitee提交突然报错remote: Incorrect username or password ( access token )
  5. 处理字典值是把字典放内存还是用sql处理_python基础~元祖与字典原理
  6. 全球DEM下载 90米、30米、12.5米等各种精度DEM数据
  7. python3 tkinter教程
  8. android面试题之二(红黑联盟)
  9. winform 图像处理
  10. android scroller,高级UI第四十四篇:Android Scroller详解
  11. 汽车驾驶技巧-倒车入库技巧图解-怎样倒车入库
  12. Ubuntu16.04安装播放器软件SMPlayer
  13. pdf转换成word怎么转换?这个方法一学就会!
  14. 【Spring源码】Spring事务原理
  15. hive之生成唯一id
  16. linux安装git并配置GitHub账号,本地与GitHub之间进行文件的上传(push)、下载(克隆)、更新
  17. 性格色彩测试android程序开发之五--dialog事件的处理
  18. \tutorial_code\introduction\windows_visual_studio_Opencv
  19. Android MediaPlayer播放视频详细步骤
  20. 第二话 统计计算之蒙特卡洛积分和方差缩减技术(未完待续)

热门文章

  1. 2021.10.26 Node.js笔记
  2. 《学习JavaScript数据结构与算法》第三章 数组
  3. 浅谈智能卡加密芯片在智能设备领域的技术运用
  4. Jvm内存分析入门篇
  5. ICML 2019收录774篇论文:谷歌153篇,清华北大26篇
  6. 阿里芯片大动作!NPU明年6月发布,“平头哥”研发量子芯片
  7. 索尼机器狗Aibo将在美国开售,智能撒娇是最甜的 |每只性格都不同
  8. 人民日报发推欢迎Google重返大陆,FB上长文阐述详细立场
  9. 开源的“谷歌AutoML杀手”来了
  10. 毛骨悚然,亚马逊AI突然笑出声来