当前位置:Gxlcms > mysql > 当ASM磁盘组无法MOUNT之时如何找到对应的物理磁盘?

当ASM磁盘组无法MOUNT之时如何找到对应的物理磁盘?

时间:2021-07-01 10:21:17 帮助过:79人阅读

如果数据存放于ASM磁盘组之上,当ASM磁盘组无法MOUNT起来,则意味着无法打开数据库。我们假设磁盘头部没有损坏,只是盘符变了,但无法正确设置ASM_DISKSTRING参数。 实验环境: RHEL5 + ORACLE10.2.0.4RAC+RAW+ASM 通过此次实验你将掌握以下知识点: 1. 初步

如果数据存放于ASM磁盘组之上,当ASM磁盘组无法MOUNT起来,则意味着无法打开数据库。我们假设磁盘头部没有损坏,只是盘符变了,但无法正确设置ASM_DISKSTRING参数。

实验环境: RHEL5 + ORACLE10.2.0.4RAC+RAW+ASM

通过此次实验你将掌握以下知识点:

1. 初步了解如何使用ORACLE两款内部工具amdu/kfed

2. 在ASM磁盘组无法MOUNT的情况下,如何对应物理磁盘和ASMDISK的关系

3. 当ASM_DISKSTRING设置不全时,如何补全并将磁盘组MOUNT起来。

  1. SQL> ALTER DISKGROUP ALL MOUNT
  2. Sat Nov 29 22:15:09 2014
  3. NOTE: cache registered group DATA number=1 incarn=0x5bc84523
  4. Sat Nov 29 22:15:09 2014
  5. NOTE: Hbeat: instance first (grp 1)
  6. Sat Nov 29 22:15:13 2014
  7. NOTE: start heartbeating (grp 1)
  8. NOTE: cache opening disk 0 of grp 1: DATA_0000 path:/dev/raw/raw3 <<<<<<<
  9. Sat Nov 29 22:15:13 2014
  10. NOTE: F1X0 found on disk 0 fcn 0.619
  11. NOTE: cache opening disk 1 of grp 1: DATA_0001 path:/dev/raw/raw4 <<<<<<<
  12. NOTE: cache mounting (first) group 1/0x5BC84523 (DATA)
  13. * allocate domain 1, invalid = TRUE
  14. Sat Nov 29 22:15:13 2014
  15. NOTE: attached to recovery domain 1
  16. Sat Nov 29 22:15:13 2014
  17. NOTE: starting recovery of thread=1 ckpt=23.573 group=1
  18. NOTE: advancing ckpt for thread=1 ckpt=23.573
  19. NOTE: cache recovered group 1 to fcn 0.5267
  20. Sat Nov 29 22:15:13 2014
  21. NOTE: opening chunk 1 at fcn 0.5267 ABA
  22. NOTE: seq=24 blk=574
  23. Sat Nov 29 22:15:13 2014
  24. NOTE: cache mounting group 1/0x5BC84523 (DATA) succeeded
  25. SUCCESS: diskgroup DATA was mounted

下面我们取消raw3,raw4裸设备的定义,重启操作系统...

  1. SQL> alter diskgroup all mount;
  2. alter diskgroup all mount
  3. *
  4. ERROR at line 1:
  5. ORA-15032: not all alterations performed
  6. ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA"
  7. SQL> alter system set asm_diskstring='/dev/sdd1'; <<<<<此处只添加一块盘符
  8. System altered.
  9. SQL> alter diskgroup data mount;
  10. alter diskgroup data mount
  11. *
  12. ERROR at line 1:
  13. ORA-15032: not all alterations performed
  14. ORA-15040: diskgroup is incomplete
  15. ORA-15042: ASM disk "1" is missing <<<<<<依旧缺失一块盘符
  16. [oracle@dwdb1 tmp]$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`
  17. [oracle@dwdb1 tmp]$ ./amdu -diskstring='/dev/sd*' -dump 'DATA' <<<<<扫描/dev/sd*所有设备
  18. [oracle@dwdb1 tmp]$ cd amdu_2014_11_30_08_28_26
  19. [oracle@dwdb1 amdu_2014_11_30_08_28_26]$ ls -lrt
  20. total 94364
  21. -rw-r--r-- 1 oracle oinstall 7231 Nov 30 08:28 report.txt
  22. -rw-r--r-- 1 oracle oinstall 8000 Nov 30 08:28 DATA.map
  23. -rw-r--r-- 1 oracle oinstall 96514048 Nov 30 08:28 DATA_0001.img

截取部分report.txt内容:

  1. ----------------------------- DISK REPORT N0010 ------------------------------
  2. Disk Path: /dev/sdd1
  3. Unique Disk ID:
  4. Disk Label:
  5. Physical Sector Size: 512 bytes
  6. Disk Size: 1019 megabytes
  7. Group Name: DATA
  8. Disk Name: DATA_0000
  9. Failure Group Name: DATA_0000
  10. Disk Number: 0
  11. Header Status: 3
  12. Disk Creation Time: 2014/11/05 12:55:10.506000
  13. Last Mount Time: 2014/11/29 23:14:47.663000
  14. Compatibility Version: 0x0a100000
  15. Disk Sector Size: 512 bytes
  16. Disk size in AUs: 1019 AUs
  17. Group Redundancy: 1
  18. Metadata Block Size: 4096 bytes
  19. AU Size: 1048576 bytes
  20. Stride: 113792 AUs
  21. Group Creation Time: 2014/11/05 12:55:10.486000
  22. File 1 Block 1 location: AU 2
  23. ----------------------------- DISK REPORT N0012 ------------------------------
  24. Disk Path: /dev/sde1 <<<<<<<<<<<<<<<<<磁盘全路径
  25. Unique Disk ID:
  26. Disk Label:
  27. Physical Sector Size: 512 bytes
  28. Disk Size: 1019 megabytes
  29. Group Name: DATA
  30. Disk Name: DATA_0001
  31. Failure Group Name: DATA_0001
  32. Disk Number: 1 <<<<<<<<<<<<<<<<<<<<<<<<<磁盘序号为1
  33. Header Status: 3
  34. Disk Creation Time: 2014/11/05 13:01:56.714000
  35. Last Mount Time: 2014/11/29 23:14:47.663000
  36. Compatibility Version: 0x0a100000
  37. Disk Sector Size: 512 bytes
  38. Disk size in AUs: 1019 AUs
  39. Group Redundancy: 1
  40. Metadata Block Size: 4096 bytes
  41. AU Size: 1048576 bytes
  42. Stride: 113792 AUs
  43. Group Creation Time: 2014/11/05 12:55:10.486000
  44. File 1 Block 1 location: AU 0
  45. ...
  46. ------------------------- SUMMARY FOR DISKGROUP DATA -------------------------
  47. Allocated AU's: 1632
  48. Free AU's: 406
  49. AU's read for dump: 100
  50. Block images saved: 23563
  51. Map lines written: 100
  52. Heartbeats seen: 0
  53. Corrupt metadata blocks: 0
  54. Corrupt AT blocks: 0
  55. ******************************* END OF REPORT ********************************

结合以上信息,使用KFED再次确认:

  1. [oracle@dwdb1 tmp]$ kfed read /dev/sde1 |more
  2. kfbh.endian: 1 ; 0x000: 0x01
  3. kfbh.hard: 130 ; 0x001: 0x82
  4. kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD
  5. kfbh.datfmt: 1 ; 0x003: 0x01
  6. kfbh.block.blk: 0 ; 0x004: T=0 NUMB=0x0
  7. kfbh.block.obj: 2147483649 ; 0x008: TYPE=0x8 NUMB=0x1
  8. kfbh.check: 1289251580 ; 0x00c: 0x4cd86afc
  9. kfbh.fcn.base: 0 ; 0x010: 0x00000000
  10. kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
  11. kfbh.spare1: 0 ; 0x018: 0x00000000
  12. kfbh.spare2: 0 ; 0x01c: 0x00000000
  13. kfdhdb.driver.provstr: ORCLDISK ; 0x000: length=8
  14. kfdhdb.driver.reserved[0]: 0 ; 0x008: 0x00000000
  15. kfdhdb.driver.reserved[1]: 0 ; 0x00c: 0x00000000
  16. kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000
  17. kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000
  18. kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000
  19. kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000
  20. kfdhdb.compat: 168820736 ; 0x020: 0x0a100000
  21. kfdhdb.dsknum: 1 ; 0x024: 0x0001
  22. kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
  23. kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
  24. 这样,就可以确定disk1就为/dev/sde1了
  25. SQL> alter system set asm_diskstring='/dev/sdd1','/dev/sde1';
  26. System altered.
  27. SQL> alter diskgroup data mount;
  28. Diskgroup altered.

接下来就可以启动数据库了。

以上简单地使用了AMDU/KFED命令,这两款具都可以实现在ASM磁盘组无法MOUNT的情况下对磁盘读写,其中KFED命令还可以用于磁盘头部的修复(10.2.5.0以上的数据库全有自动备份),还可以做异常恢复:从ASM磁盘直接恢复数据文件,总之也是个非常强大的工具。

人气教程排行