在一些特殊的情况下,比如存储迁移等,需要将vote disk从一个ASM disk group迁移到另外一个ASM disk group。
- 当前vote disk位于VOTE diskgroup
$crsctl query css votedisk
STATE File Universal Id File Name Disk group
-
ONLINE 7971b4acbea54fbabf17d0cc091ed451 (/dev/rhdisk42) [VOTE]
-
ONLINE 56cb40af1ff64f9fbff79bfadd03d432 (/dev/rhdisk82) [VOTE]
-
ONLINE 40228e87536e4f9dbfdb7c6f90fbe917 (/dev/rhdisk2) [VOTE]
Located 3 voting disk(s).
- 迁移vote disk到+data diskgroup,命令失败:
$crsctl replace votedisk +data
Failed to create voting files on disk group data.
Change to configuration failed, but was successfully rolled back.
CRS-4000: Command Replace failed, or completed with errors.
- GI_HOME/log/
/client/crsctl_log.txt 错误信息
2013-08-14 10:32:01.767: [ CRSCTL][1]crsctl_replace_votedisk: calling kgfdvfPushDiskString
2013-08-14 10:32:03.153: [ CRSCTL][1]function crsctl_replace_votedisk, error 1 [clsuSlosFormatDiag called with non-error slos.]
2013-08-14 10:32:03.153: [ CRSCTL][1]crsctl_replace_votedisk: pushed the ASM DS to the profile 1
[ CLWAL][1]clsw_Initialize: OLR initlevel [30000]
2013-08-14 10:32:03.386: [ CRSCTL][1]crsctl_format_diskgroup: creating diskgroup data
2013-08-14 10:32:05.855: [ CRSCTL][1]function crsctl_format_diskgroup, error 1 SLOS: cat=-1, opn=(none), dep=(none), loc=ORA-01405: f
2013-08-14 10:32:05.856: [ CRSCTL][1]crsctl_format_diskgroup: diskgroup data creation with status 1. Please check the alert log file for ASM
- asm alert log 错误信息:
NOTE: Creating voting files in diskgroup DATA
NOTE: Voting File refresh pending for group 1/0xad5e996c (DATA)
NOTE: Attempting voting file creation in diskgroup DATA
NOTE: voting file allocation on grp 1 disk DATA_0000
NOTE: voting file allocation on grp 1 disk DATA_0001
ERROR: Voting file allocation failed for group DATA
Errors in file /app/base/diag/asm/+asm/+ASM1/trace/+ASM1_ora_43581494.trc:
ORA-15274: Not enough failgroups (3) to create voting files
- 问题原因:存放vote disk的diskgroup必须满足下面的要求:
-
如果diskgroup是normal redundant,那么要求有3个failure group才能存放vote disk。
-
如果diskgroup是high redundant,那么要求有5个failure group才能存放vote disk。
+DATA diskgroup是normal redundant diskgroup,但是只有2个failure group,不满足上面的要求,因此失败,
查看diskgroup的failure group信息:
select GROUP_NUMBER,name,type from v$asm_diskgroup;
GROUP_NUMBER NAME TYPE
2 DATA NORMAL
复制
<<<<<<<<<<< +DATA是normal redundant diskgroup
select group_number,disk_number,name,path,failgroup from v$asm_disk where GROUP_NUMBER=2;
GROUP_NUMBER DISK_NUMBER NAME PATH FAILGROUP
2 0 ASMDISK1 ORCL:ASMDISK1 CONTROLLER1 2 1 ASMDISK2 ORCL:ASMDISK2 CONTROLLER2
复制
<<<<<<<<<<<+DATA只有2个failure group,CONTROLLER1和CONTROLLER2
- 解决方法:创建一个normal redundant diskgroup,并且有3个failure group,然后再迁移.
方法#1 指定3个disk,并且设置3个failure group
CREATE DISKGROUP temp1 NORMAL REDUNDANCY
FAILGROUP controller1 DISK ‘/dev/ASMDISK1’ NAME ASMDISK1
FAILGROUP controller2 DISK ‘/dev/ASMDISK2’ NAME ASMDISK2
FAILGROUP controller3 DISK ‘/dev/ASMDISK3’ NAME ASMDISK3;
方法#2 指定3个disks,默认每个disk为自己的failure group
CREATE DISKGROUP temp1 NORMAL REDUNDANCY
DISK ‘/dev/ASMDISK1’ NAME ASMDISK1
DISK ‘/dev/ASMDISK2’ NAME ASMDISK2
DISK ‘/dev/ASMDISK3’ NAME ASMDISK3;
-迁移vote disk
$crsctl replace votedisk +temp1
参考在线文档:http://docs.oracle.com/cd/E11882_01/install.112/e41961/storage.htm#CWLIN290
Disk groups containing voting files must have at least 3 failure groups for normal redundancy or at least 5 failure groups for high redundancy.