环境信息:
oracle10gRAC + RHEL5.8
问题现象:
db1服务器crs服务正常,ASM的data磁盘组处于dismount状态。db2集群服务正常。
SQL> select name,state from v$asm_diskgroup;
NAME STATE
-------------------- ---------------------------------
ARCHDG MOUNTED
DATADG DISMOUNTED
尝试mount,但失败
SQL> alter diskgroup datadg mount;
alter diskgroup datadg mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15040: diskgroup is incomplete
ORA-15042: ASM disk "1" is missing
强制mount也报错
SQL> alter diskgroup datadg mount force;
alter diskgroup datadg mount force
*
ERROR at line 1:
ORA-00905: missing keyword
排查了一些资料,说是磁盘组的头有问题;这个答案肯定不是我这个案例的问题,因为db2是好的。
再查看好的db2机器磁盘组状态:
SQL> select name,state from v$asm_diskgroup;
NAME STATE
-------------------- ---------------------------------
ARCHDG MOUNTED
DATADG MOUNTED
SQL> col name for a20
SQL> col path for a20
SQL> col failgroup for a20
SQL> select name,failgroup,path from v$asm_disk;
NAME FAILGROUP PATH
-------------------- -------------------- --------------------
/dev/raw/raw3
ARCHDG_0000 ARCHDG_0000 /dev/raw/raw4
DATADG_0000 DATADG_0000 /dev/raw/raw2
DATADG_0001 DATADG_0001 /dev/raw/raw5
得知data盘用的raw2和raw5。
[root@db2 ~]# ll /dev/raw/raw*
crw-r----- 1 root oinstall 162, 1 9月 21 21:05 /dev/raw/raw1
crw-rw---- 1 oracle oinstall 162, 2 9月 21 21:05 /dev/raw/raw2
crw-rw---- 1 oracle oinstall 162, 3 9月 21 21:05 /dev/raw/raw3
crw-rw---- 1 oracle oinstall 162, 4 9月 21 21:05 /dev/raw/raw4
crw-rw---- 1 oracle oinstall 162, 5 9月 21 21:05 /dev/raw/raw5
接着排查db1的raw设备:
[oracle@db1 ~]$ ll /dev/raw/raw*
crw-r----- 1 root oinstall 162, 1 Sep 12 19:47 /dev/raw/raw1
crw-rw---- 1 oracle oinstall 162, 2 Sep 12 19:47 /dev/raw/raw2
crw-rw---- 1 oracle oinstall 162, 3 Sep 12 19:47 /dev/raw/raw3
crw-rw---- 1 oracle oinstall 162, 4 Sep 12 19:47 /dev/raw/raw4
crw------- 1 root root 162, 5 Sep 12 19:47 /dev/raw/raw5
发现raw5的属主是root。进行了如下修改:
[root@db1 ~]# chown oracle:oinstall /dev/raw/raw5
[root@db1 ~]# chmod 660 /dev/raw/raw5
再次
SQL> alter diskgroup datadg mount;
Diskgroup altered. 问题解决了