I've recently created an ASM instance on one of my Test DB Machine which has 10g R2 installed on Red Hat Linux 5 platform . It was absolutely good until a recent system issue which forced us to reboot machine and soon after the machine is up and we tried starting ASM instance it's prompting following errors on the terminal which reads:
[oracle@localhost ~]$ export ORACLE_SID=+ASM
[oracle@localhost ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Oct 12 18:59:37 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup ORA-15032: not all alterations performed ORA-15063: ASM discovered an insufficient number of disks for diskgroup "'+TESTDB_DATA1'"
ORA-29701: unable to connect to Cluster Manager
Then i tried to check the status of raw disks I've made during the Failgroup creation and found the permissions has somehow reverted back to root:root which should be oracle:oinstall in place for all raw disks.
[root@localhost ~]# cd /dev/raw
[root@localhost raw]# ls -ltr
total 0 crw------- 1 root root 162, 1 Oct 12 18:58 raw1
crw------- 1 root root 162, 2 Oct 12 18:58 raw2
crw------- 1 root root 162, 3 Oct 12 18:58 raw3
crw------- 1 root root 162, 4 Oct 12 18:58 raw4
(There are four raw disks and raw 1 and raw 2 part of Failgroup 1 and raw 3 and raw 4 is Failgroup 2)
so, i manually changed the permissions again to oracle:oinstall and modified the mode to 660 and then tried to start the ASM instance and as per my expectations it started working good.
But to test i rebooted machine again after this permissions and mode change and it's started doing the same and permissions and ownership rolled back to root:root
Below are the contents of boot up script-- /etc/rc.d/rc.local
[root@localhost raw]# vi /etc/rc.d/rc.local
# This script will be executed after all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
/sbin/losetup /dev/loop1 /asmdisk/disk1
/sbin/losetup /dev/loop2 /asmdisk/disk2
/sbin/losetup /dev/loop3 /asmdisk/disk3
/sbin/losetup /dev/loop4 /asmdisk/disk4
raw /dev/raw/raw1 /dev/loop1
raw /dev/raw/raw2 /dev/loop2
raw /dev/raw/raw3 /dev/loop3
raw /dev/raw/raw4 /dev/loop4
Sorry for replying late. Issue was fixed long back and as far as i remember that was an issue with newly created RAW DEVICES and with some RPM's missing.
Was a total fault from System Engineering team (Unix).
Marking this question as 'Answered'. Thanks everyone for giving your precious time.