6 Replies Latest reply on Apr 21, 2013 5:10 AM by Prashant Dixit

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

    Prashant Dixit
      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