绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
ASM Label丢失导致集群重启失败
2020-08-15 22:02:22


这是一个测试环境,开发反映服务器重启后数据库无法访问,这是一个两节点集群,查询集群状态发现,在ora.cssd处于starting 状态

那么就需要查询cssd.log看这个Demon发生了什么。(用来自MOS的一个例子说明吧,虽然实际无法发现的Label名字有差异,但是解决步骤

都是一样的)


 [    CSSD][922285824]clssnmReadDiscoveryProfile: voting file discovery string(/dev/oracleasm/disks/*)

 [    CSSD][922285824]clssnmvDDiscThread: using discovery string /dev/oracleasm/disks/* for initial discovery

 [   SKGFD][922285824]Discovery with str:/dev/oracleasm/disks/*:

...

 [   SKGFD][922285824]Handle 0x7fd920153400 from lib :UFS:: for disk :/dev/oracleasm/disks/Disk1:

...

 [   SKGFD][922285824]Lib :UFS:: closing handle 0x7fd920153400 for disk :/dev/oracleasm/disks/Disk1:

...

 [    CSSD][922285824]clssnmvDiskVerify: Successful discovery of 0 disks                                   

 [    CSSD][922285824]clssnmCompleteInitVFDiscovery: Completing initial voting file discovery

 [    CSSD][922285824]clssnmvFindInitialConfigs: No voting files found


这里原因也比较直观,就是无法发现voting file。也就是服务器重启后,Oracle无法发现asm磁盘Label

我们查询,确实没有发现 Label信息

$ ls -l /dev/oracleasm/disks

目前的问题是OCR对应的磁盘是存在的,但是由于未知的原因,这个Label没有了,此时我们需要使用如下指令

重建出这个Lable

使用root用户,执行如下操作

# /usr/sbin/oracleasm renamedisk -f <device name> <label>

目前我们需要确认磁盘设备和ASMLabel的对应关系,此时我们就需要一个kfed工具,来读取并解析磁盘设备记录的

相关信息,从而修复ASM磁盘头。如果有安装文档,我们就知道这个对应关系,我们也可以读取磁盘信息,来获取一般都记录

了特殊的kfdhdb.grpname对应的名字,如DATADISK,OCRDISK,ARCHDISK等。

$kfed read /dev/sdc1

....

kfdhdb.driver.provstr: ORCLDISK ; 0x000: length=8                          <<<<< 无法发现磁盘Label

kfdhdb.driver.reserved[0]: 0 ; 0x008: 0x00000000                           <<<<<

kfdhdb.driver.reserved[1]: 0 ; 0x00c: 0x00000000                           <<<<<

kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000

kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000

kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000

kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000

...

kfdhdb.dskname:           OCRDISK1_0000 ; 0x028: length=13

kfdhdb.grpname:                OCRDISK1 ; 0x048: length=8                 <<<<< 对应ASM磁盘

kfdhdb.fgname:            OCRDISK1_0000 ; 0x068: length=13

...

kfdhdb.vfstart:                     352 ; 0x0ec: 0x00000160

kfdhdb.vfend:                       384 ; 0x0f0: 0x00000180


我们通过如下方式修复ASM磁盘头信息

# /usr/sbin/oracleasm renamedisk -f /dev/sdc1 OCRDISK1

下面检查

$ ls -l /dev/oracleasm/disks

total 0

brw-rw---- 1 oragrid asmadmin 8, 113 May 29 19:40 OCRDISK1

brw-rw---- 1 oragrid asmadmin 8, 129 May 29 00:38 OCRDISK2

brw-rw---- 1 oragrid asmadmin 8, 145 May 29 00:38 OCRDISK3

进一步通过kfed获得ASMLIB驱动信息

kfdhdb.driver.provstr: ORCLDISKOCRDISK1 ; 0x000: length=16            <<<<

kfdhdb.driver.reserved[0]:   1146241871 ; 0x008: 0x4452434f           <<<<

kfdhdb.driver.reserved[1]:    827020105 ; 0x00c: 0x314b5349             <<<<

...

kfdhdb.dskname:           OCRDISK1_0000 ; 0x028: length=13

kfdhdb.grpname:                OCRDISK1 ; 0x048: length=8

kfdhdb.fgname:            OCRDISK1_0000 ; 0x068: length=13

重启集群状态,正常

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Oracle运维新鲜事-技术与管理各占半边天
创建时间:2020-08-04 11:34:57
本技术栈旨在分享技术心得,运维趣事,故障处理经验,调优案例,故障处理涉及集群,DG,OGG,大家生产中遇到的问题基本都会囊括了,我会发布生产库遇到的故障,希望在交流中互助互益,共同提高,也希望大家讨论,如果您有生产中遇到的集群问题,也可以在这里提出来,一起讨论,现实中也帮助不少同学解决了生产库的故障。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • Abraham林老师
    栈主
  • 小雨滴
    嘉宾
  • hawkliu
    嘉宾
  • u_97a59a25246404
    嘉宾

小栈成员

查看更多
  • 栈栈
  • dapan
  • 小菜鸟___
  • hwayw
戳我,来吐槽~