This discussion is archived
6 Replies Latest reply: Apr 20, 2013 10:10 PM by PrashantDixit RSS

ORA-15063 ASM discovered an insufficient number of disks for diskgroup ...

PrashantDixit Newbie
Currently Being Moderated
Hi Everyone,

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 - 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'"

OR Sometimes

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.

touch /var/lock/subsys/local

/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

Please Assist.

Ant ...
Prashant Dixit

Edited by: Ant ... on Oct 12, 2012 11:17 PM


  • Correct Answers - 10 points
  • Helpful Answers - 5 points