Exadata Griddisk Can't be auto added

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

  近日遇到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.  
  3. For example 
  4. dmorlcel09: Success in AdpEventLog 
  5. dmorlcel09: 
  6. dmorlcel09: Exit Code: 0x00 
  7. …… 
  8. dmorlcel09: sundiag_2012_07_10_06_08/dmorlcel09_megacli64-status_2012_07_10_06_08.out 
  9. dmorlcel09: ============================================================================== 
  10. dmorlcel09: Done the report files are in bzip2 compressed /tmp/sundiag_2012_07_10_06_08.tar.bz2 
  11. dmorlcel09:  
2.但是在还盘后问题没有解决, ASM不能自动增加griddisk到磁盘组, 下面是我的分析步骤
 
 
  1. $ sqlplus / as sysasm 
  2.  
  3. (1)Check sum of griddisk  
  4. column "Diskgroup" format A30 
  5. column "Imbalance" format 99.9 Heading "Percent|Imbalance" 
  6. column "Variance" format 99.9 Heading "Percent|Disk Size|Variance" 
  7. column "MinFree" format 99.9 Heading "Minimum|Percent|Free" 
  8. column "DiskCnt" format 9999 Heading "Disk|Count" 
  9. column "Type" format A10 Heading "Diskgroup|Redundancy" 
  10. SELECT g.name "Diskgroup", 
  11. 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", 
  12. 100*(max(d.total_mb)-min(d.total_mb))/max(d.total_mb) "Variance", 
  13. 100*(min(d.free_mb/d.total_mb)) "MinFree", 
  14. count(*) "DiskCnt", 
  15.  g.type "Type" 
  16.  FROM v$asm_disk d, v$asm_diskgroup g 
  17.  WHERE d.group_number = g.group_number and 
  18.  d.group_number <> 0 and 
  19.  d.state = 'NORMAL' and 
  20. d.mount_status = 'CACHED' 
  21. GROUP BY g.name, g.type; 
  22. --- 
  23.  
  24. Diskgroup          Percent Imbalance   Percent Disk Size Variance   Minimum Percent Free  Disk Count Redundancy 
  25. ----------------        ---------         ---------                  -------              ----- ---------- 
  26. DBFS_DG               84.6                 .0                        99.8              220   NORMAL 
  27. DG_DAT1                7.1                 .0                        8.9               264  NORMAL 
  28. DG_DAT2                 .1                 .0                        65.1              263  NORMAL                       <<<<<<<<This lack one disk then DG_DAT1 
  29.  
  30. (2) We can find one griddisk isn’t mounted. 
  31. set line 300 
  32. column "PATH" format A100 
  33. SQL> select name, path, header_status from v$asm_disk order by path; 
  34. DG_DAT1_CD_11_DM02CEL04        o/192.168.10.34/DG_DAT1_CD_11_dm02cel04                      MEMBER          
  35. DG_DAT1_CD_00_DM02CEL04        o/192.168.10.34/DG_DAT1_CD_00_dm02cel04                      MEMBER                                                                                                                                                                                                                                                                                                         
  36.                                                      o/192.168.10.34/DG_DAT2_CD_00_dm02cel04                FORMER          <<<<<<<<<<<<<<<<<<  This status is unnormal 
  37. DG_DAT2_CD_01_DM02CEL04        o/192.168.10.34/DG_DAT2_CD_01_dm02cel04                      MEMBER 
  38. ------------------------------------ 
  39. Comments 
  40. 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.  
  41.   
  42.  
  43. (3)Determine DG_DAT2_CD_00_dm02cel04 was missed 
  44.  
  45. 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  
  46. NAME                                                         HEADER_STATUS            MOUNT_STATUS   STATE            GROUP_NUMBER 
  47. ------------------------------------------------------------ ------------------------ -------------- ---------------- ------------ 
  48. DG_DAT1_CD_00_DM02CEL04                                      MEMBER                   CACHED         NORMAL                      2 
  49.                                                                                                                   <<<<<<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) 
  42.   

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.  
  3. 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 = 3dsk = 192/0xe96891f9, mask = 0x6aop = 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,如需转载请自行联系原作者

目录
相关文章
|
2月前
|
SQL Java Maven
flywa报错Migration checksum mismatch for migration version 1.1 -> Applied to database : 1332862643 ->
flywa报错Migration checksum mismatch for migration version 1.1 -> Applied to database : 1332862643 ->
40 1
SAP MM FK08 (Confirm change vendor) Usage Research II
SAP MM FK08 (Confirm change vendor) Usage Research II
SAP MM FK08 (Confirm change vendor) Usage Research II
SAP MM FK08 (Confirm change vendor) Usage Research
SAP MM FK08 (Confirm change vendor) Usage Research
SAP MM FK08 (Confirm change vendor) Usage Research
|
网络协议 Oracle 关系型数据库
|
SQL 关系型数据库 对象存储
Database Recovery in GitLab – Implementing Database Disaster Tolerance & High Availability
How can we restore accidentally deleted database in GitLab? How can we implement database backup, recovery, disaster tolerance, and high availability?
2175 0