IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    pvid=yes导致asm无法mount

    惜分飞发表于 2016-06-19 10:29:21
    love 0

    联系:手机(13429648788) QQ(107644445)QQ咨询惜分飞

    标题:pvid=yes导致asm无法mount

    作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

    今天凌晨接到客户恢复请求,对于aix rac,两个ibm存储做mirror的环境中,客户做存储容灾演练,发现磁盘的名称发生改变,然后对其中一个磁盘设置pvid,结果悲剧了导致asm一个磁盘组无法正常起来。然后又aix端删除这些设备,然后重新扫描设备。结果不是一个磁盘组不能mount,而是整个gi就无法正常启动。希望我们给予技术支持。
    查看asm 日志,确定asm disk信息
    asm-disk1
    asm-disk2


    从这里可以确定,一共有两个asm diskgroup,每个group有两个磁盘,hdisk2和hdisk3 为hisdata,hdisk4,和hdisk5为emrdata.

    使用kfed分析磁盘头

    dd if=/dev/rhdisk2 of=/tmp/xifenfei/rhdisk2.dd bs=1024k count=10
    dd if=/dev/rhdisk3 of=/tmp/xifenfei/rhdisk3.dd bs=1024k count=10
    dd if=/dev/rhdisk4 of=/tmp/xifenfei/rhdisk4.dd bs=1024k count=10
    dd if=/dev/rhdisk5 of=/tmp/xifenfei/rhdisk5.dd bs=1024k count=10
    --传输到我电脑上分析
    
    C:\Users\FAL>kfed read H:\temp\xifenfei\tmp\xifenfei\rhdisk2.dd|grep name
    kfdhdb.dskname:            HISDATA_0000 ; 0x028: length=12
    kfdhdb.grpname:                 HISDATA ; 0x048: length=7
    kfdhdb.fgname:             HISDATA_0000 ; 0x068: length=12
    kfdhdb.capname:                         ; 0x088: length=0
    
    C:\Users\FAL>kfed read H:\temp\xifenfei\tmp\xifenfei\rhdisk3.dd|grep name
    kfdhdb.dskname:            HISDATA_0001 ; 0x028: length=12
    kfdhdb.grpname:                 HISDATA ; 0x048: length=7
    kfdhdb.fgname:             HISDATA_0001 ; 0x068: length=12
    kfdhdb.capname:                         ; 0x088: length=0
    
    C:\Users\FAL>kfed read H:\temp\xifenfei\tmp\xifenfei\rhdisk4.dd|grep name
    kfdhdb.dskname:            EMRDATA_0000 ; 0x028: length=12
    kfdhdb.grpname:                 EMRDATA ; 0x048: length=7
    kfdhdb.fgname:             EMRDATA_0000 ; 0x068: length=12
    kfdhdb.capname:                         ; 0x088: length=0
    
    C:\Users\FAL>kfed read H:\temp\xifenfei\tmp\xifenfei\rhdisk5.dd|grep name
    
    C:\Users\FAL>kfed read H:\temp\xifenfei\tmp\xifenfei\rhdisk5.dd
    kfbh.endian:                        201 ; 0x000: 0xc9
    kfbh.hard:                          194 ; 0x001: 0xc2
    kfbh.type:                          212 ; 0x002: *** Unknown Enum ***
    kfbh.datfmt:                        193 ; 0x003: 0xc1
    kfbh.block.blk:                       0 ; 0x004: blk=0
    kfbh.block.obj:                       0 ; 0x008: file=0
    kfbh.check:                           0 ; 0x00c: 0x00000000
    kfbh.fcn.base:                        0 ; 0x010: 0x00000000
    kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
    kfbh.spare1:                          0 ; 0x018: 0x00000000
    kfbh.spare2:                          0 ; 0x01c: 0x00000000
    000000000 C1D4C2C9 00000000 00000000 00000000  [................]
    000000010 00000000 00000000 00000000 00000000  [................]
      Repeat 254 times
    KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][212]
    
    C:\Users\FAL>kfed read H:\temp\xifenfei\tmp\xifenfei\rhdisk5.dd blkn=2|grep kfbh
    kfbh.endian:                          0 ; 0x000: 0x00
    kfbh.hard:                          130 ; 0x001: 0x82
    kfbh.type:                            3 ; 0x002: KFBTYP_ALLOCTBL
    kfbh.datfmt:                          2 ; 0x003: 0x02
    kfbh.block.blk:                33554432 ; 0x004: blk=33554432
    kfbh.block.obj:                16777344 ; 0x008: file=128
    kfbh.check:                  2654889601 ; 0x00c: 0x9e3e6681
    kfbh.fcn.base:               1696071680 ; 0x010: 0x65180000
    kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
    kfbh.spare1:                          0 ; 0x018: 0x00000000
    kfbh.spare2:                          0 ; 0x01c: 0x00000000
    
    C:\Users\FAL>kfed read H:\temp\xifenfei\tmp\xifenfei\rhdisk5.dd blkn=510|grep name
    kfdhdb.dskname:            EMRDATA_0001 ; 0x028: length=12
    kfdhdb.grpname:                 EMRDATA ; 0x048: length=7
    kfdhdb.fgname:             EMRDATA_0001 ; 0x068: length=12
    kfdhdb.capname:                         ; 0x088: length=0
    

    通过上述分析,基本上确定由于对hdisk5设置了pvid导致该asm disk的磁盘头损坏.这个可以直接使用asm repair功能修复(注意要clear pvid)

    C:\Users\FAL>kfed read H:\temp\xifenfei\tmp\xifenfei\rhdisk5.dd |grep name
    kfdhdb.dskname:            EMRDATA_0001 ; 0x028: length=12
    kfdhdb.grpname:                 EMRDATA ; 0x048: length=7
    kfdhdb.fgname:             EMRDATA_0001 ; 0x068: length=12
    kfdhdb.capname:                         ; 0x088: length=0
    

    启动crs到cssd进程报错分析
    1. 由于删除磁盘,扫描设备导致hdisk[2-5] 权限和用户组不对
    2. 由于删除,扫描磁盘导致磁盘共享模式不对
    修复磁盘头和解决这两个问题之后,gi启动正常,磁盘组也正常mount,数据库也正常启动,数据0丢失,至此完美恢复
    oracle-open


    类似客户恢复案例:asm disk误设置pvid导致asm diskgroup无法mount恢复

    • 使用losetup实现linux普通文件做asm disk
    • 手工修复ASM DISK HEADER 异常
    • ASM DISK HEADER 备份与恢复
    • asm disk误设置pvid导致asm diskgroup无法mount恢复
    • 使用asm disk header 自动备份信息恢复异常asm disk header
    • asm disk格式化为ntfs恢复
    • 分享oracleasm createdisk重新创建asm disk后数据0丢失恢复案例
    • asm disk被格式化为ext4文件系统恢复
    • oracle 12.1 RAC的ocr磁盘组异常恢复
    • ADHU(ASM Disk Header Utility)—asm disk header备份恢复工具
    • asm disk header 彻底损坏恢复
    • How to Get the Contents of an Spfile on ASM when ASM/GRID is down


沪ICP备19023445号-2号
友情链接