直接对asm磁盘组中的asmlib库创建的磁盘进行了格式化导致磁盘丢失的处理
在做了上一个ocr votdisk试验后,开机再次启动,发现了问题:
[oracle@host01 ~]$ crsctl stat res -t -init
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.asm
1 ONLINE INTERMEDIATE host01 OCR not started
ora.cluster_interconnect.haip
1 ONLINE ONLINE host01
ora.crf
1 OFFLINE OFFLINE
ora.crsd
1 OFFLINE OFFLINE
ora.cssd
1 ONLINE ONLINE host01
ora.cssdmonitor
1 ONLINE ONLINE host01
ora.ctssd
1 ONLINE ONLINE host01 OBSERVER
ora.diskmon
1 OFFLINE OFFLINE
ora.drivers.acfs
1 ONLINE ONLINE host01
ora.evmd
1 OFFLINE OFFLINE
ora.gipcd
1 ONLINE ONLINE host01
ora.gpnpd
1 ONLINE ONLINE host01
ora.mdnsd
1 ONLINE ONLINE host01
检查日志:
[/u01/app/11.2.0/grid/bin/oraagent.bin(23932)]CRS-5019:All OCR locations are on ASM disk groups [DATA], and none of these disk groups are mounted. Details are at "(:CLSN00100:)" in "/u01/app/11.2.0/grid/log/host01/agent/ohasd/oraagent_oracle/oraagent_oracle.log".
检查磁盘,发现asmdisk01-asmdisk04 不见了
[root@host01 ~]# oracleasm listdisks
ASMDISK05
ASMDISK06
ASMDISK07
ASMDISK08
ASMDISK09
ASMDISK10
ASMDISK11
ASMDISK12
在v$asm_disk 中都不能看到了
SQL> r
1* select name,path,label from v$asm_disk
NAME PATH LABEL
------------------------------ ------------------------------ -------------------------------
ORCL:ASMDISK05 ASMDISK05
ORCL:ASMDISK06 ASMDISK06
ORCL:ASMDISK07 ASMDISK07
ORCL:ASMDISK12 ASMDISK12
ASMDISK08 ORCL:ASMDISK08 ASMDISK08
ASMDISK09 ORCL:ASMDISK09 ASMDISK09
ASMDISK10 ORCL:ASMDISK10 ASMDISK10
ASMDISK11 ORCL:ASMDISK11 ASMDISK11
再次去增加这些盘,却又报已经被labeled:
[root@host01 ~]# oracleasm createdisk asmdisk01 /dev/sdc1
Device "/dev/sdc1" is already labeled for ASM disk ""
检查 /etc/blkid/blkid.tab ,发现这些盘确实存在
[root@host01 ~]# cat /etc/blkid/blkid.tab
...
<device DEVNO="0x0821" TIME="1533970848" LABEL="ASMDISK01" TYPE="oracleasm">/dev/sdc1</device>
<device DEVNO="0x0831" TIME="1533970848" LABEL="ASMDISK02" TYPE="oracleasm">/dev/sdd1</device>
<device DEVNO="0x0841" TIME="1533970848" LABEL="ASMDISK03" TYPE="oracleasm">/dev/sde1</device>
<device DEVNO="0x0851" TIME="1533970848" LABEL="ASMDISK04" TYPE="oracleasm">/dev/sdf1</device>
<device DEVNO="0x0861" TIME="1533970848" LABEL="ASMDISK05" TYPE="oracleasm">/dev/sdg1</device>
<device DEVNO="0x0871" TIME="1533970848" LABEL="ASMDISK06" TYPE="oracleasm">/dev/sdh1</device>
<device DEVNO="0x0881" TIME="1533970848" LABEL="ASMDISK07" TYPE="oracleasm">/dev/sdi1</device>
<device DEVNO="0x0891" TIME="1533970848" LABEL="ASMDISK08" TYPE="oracleasm">/dev/sdj1</device>
<device DEVNO="0x08a1" TIME="1533970848" LABEL="ASMDISK09" TYPE="oracleasm">/dev/sdk1</device>
<device DEVNO="0x08b1" TIME="1533970848" LABEL="ASMDISK10" TYPE="oracleasm">/dev/sdl1</device>
<device DEVNO="0x08c1" TIME="1533970848" LABEL="ASMDISK11" TYPE="oracleasm">/dev/sdm1</device>
<device DEVNO="0x08d1" TIME="1533970848" LABEL="ASMDISK12" TYPE="oracleasm">/dev/sdn1</device>
...
[root@host01 ~]#
强制修改一下:
[root@host01 ~]# oracleasm renamedisk -f /dev/sdc1 ASMDISK01
Writing disk header: done
Instantiating disk "ASMDISK01": done
[root@host01 ~]# oracleasm renamedisk -f /dev/sdd1 ASMDISK02
Writing disk header: done
Instantiating disk "ASMDISK02": done
[root@host01 ~]# oracleasm renamedisk -f /dev/sde1 ASMDISK03
Writing disk header: done
Instantiating disk "ASMDISK03": done
[root@host01 ~]# oracleasm renamedisk -f /dev/sdf1 ASMDISK04
Writing disk header: done
Instantiating disk "ASMDISK04": done
--再次去确认,发现找到了。
[root@host01 ~]# oracleasm listdisks
ASMDISK01
ASMDISK02
ASMDISK03
ASMDISK04
ASMDISK05
ASMDISK06
ASMDISK07
ASMDISK08
ASMDISK09
ASMDISK10
ASMDISK11
ASMDISK12
[root@host01 ~]#
再次去关闭crs,再次打开crs,这个时候,发现正常了。
[oracle@host01 ~]$ crsctl stat res -t -init
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.asm
1 ONLINE ONLINE host01 Started
ora.cluster_interconnect.haip
1 ONLINE ONLINE host01
ora.crf
1 ONLINE ONLINE host01
ora.crsd
1 ONLINE ONLINE host01
ora.cssd
1 ONLINE ONLINE host01
ora.cssdmonitor
1 ONLINE ONLINE host01
ora.ctssd
1 ONLINE ONLINE host01 OBSERVER
ora.diskmon
1 OFFLINE OFFLINE
ora.drivers.acfs
1 ONLINE ONLINE host01
ora.evmd
1 ONLINE ONLINE host01
ora.gipcd
1 ONLINE ONLINE host01
ora.gpnpd
1 ONLINE ONLINE host01
ora.mdnsd
1 ONLINE ONLINE host01
[oracle@host01 ~]$
问题原因是,我们前面直接对 /etc/oracleasm/disks/asmdisk01 这个设备文件进行了操作,正常应该是先通过
/usr/sbin/oracleasm deletedisk命令来删除对应的ASM磁盘,然后在操作系统级别删除对应的硬盘分区,重新创建新分区之后,再在该硬盘分区上通过/usr/sbin/oracleasm createdisk命令创建ASM磁盘时,就不会出现上述错误了!
|