ITPub博客

首页 > 数据库 > Oracle > 11gASM磁盘头大量损坏?

11gASM磁盘头大量损坏?

原创 Oracle 作者:jelephant 时间:2014-02-27 14:12:23 0 删除 编辑
今天突然发现集群数据库宕了,发现DATADG没有mount,果断手工mount,报错:mount失败,磁盘组找不到第51块盘
select path,name,header_status from v$asm_disk order by path;
发现磁盘头损毁。

修复如下:
磁盘组头部备份的位置:

AU SIZE =1M 备份块 blkn=510

AU SIZE =2M 备份块 blkn=1022

AU SIZE =4M 备份块 blkn=2046

AU SIZE =8M 备份块 blkn=4094

AU SIZE =16M 备份块 blkn=8190

AU SIZE =32M 备份块 blkn=16382

AU SIZE =64M 备份块 blkn=32766

[grid@auditdb3 dev]$ kfed read ora52
kfbh.endian: 0 ; 0x000: 0x00
kfbh.hard: 0 ; 0x001: 0x00
kfbh.type: 0 ; 0x002: KFBTYP_INVALID

kfbh.datfmt: 0 ; 0x003: 0x00
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

[grid@auditdb3 dev]$ kfed repair ora52

两个节点分别手工mount,成功,集群服务状态正常。

由于是新上架的服务器,重启shutdown -r now(最好不用reboot)

等等......................

集群没起来,查看日志,successful discovery of 0 disks,未发现voting disk

尝试查看ams实例中磁盘的情况
两个节点运行如下命令:
crsctl stop has -f
绕过crs强制启动asm
crsctl start crs -excl -nocrs
登陆asm查看磁盘状态,发现大量坏盘
sqlplus / as sysasm
select name,path,header_status from v$asm_disk order by path;

新盘不可能出现大量磁盘头损毁的情况啊。利用udevadm命令比较两边识别的磁盘信息

node1:
  1. udevadm info --query=all --path=/dev/ocr1
  2. P: /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda
  3. N: sddmlaa
  4. W: 55
  5. S: block/8:0
  6. S: disk/by-id/ata-WDC_WD5000AAKX-001CA0_WD-WCAYUX405680
  7. S: disk/by-id/scsi-SATA_WDC_WD5000AAKX-_WD-WCAYUX405680
  8. S: disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0
  9. S: disk/by-id/wwn-0x50014ee2b0b0304c
node2:

  1. udevadm info --query=all --path=/dev/ocr1
  2. P: /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda
  3. N: sddmlaa
  4. W: 55
  5. S: block/8:0
  6. S: disk/by-id/ata-WDC_WD5000AAKX-001CA0_WD-WCAYUX405680--part1
  7. S: disk/by-id/scsi-SATA_WDC_WD5000AAKX-_WD-WCAYUX405680--part1
  8. S: disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0
  9. S: disk/by-id/wwn-0x50014ee2b0b0304c
发现一个识别的是分区后的盘,一个识别的是分区前的盘。
比对两边的99-oracle-asmdrive.rules文件发现

node1:
KERNEL=="sddlm*"

node2:
KERNEL=="sddlm*1"

同步两节点的配置文件,统一匹配分区后的磁盘

重启服务器,集群状态正常。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29337971/viewspace-1094141/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-12-07

  • 博文量
    143
  • 访问量
    632946