Skip to content

ORA-15077: Could Not Locate ASM Instance Serving the Database

ORA-15077: Could Not Locate ASM Instance Serving a Required Diskgroup

Section titled “ORA-15077: Could Not Locate ASM Instance Serving a Required Diskgroup”

Error Text: ORA-15077: could not locate ASM instance serving a required diskgroup

ORA-15077 occurs when a database instance attempts to access an ASM diskgroup but cannot find a running ASM instance to handle the request. The error commonly appears at database startup, during file creation, or after ASM has been restarted/crashed.

  • ASM crashed or was shut down
  • ASM failed to start during cluster boot
  • Wrong ASM instance targeted
  • ASM in NOMOUNT state (not yet ready for connections)
  • ASM not registered with local listener
  • Database tried connecting before ASM registration completed
  • Listener crashed or misconfigured
  • LOCAL_LISTENER parameter wrong on ASM
  • CRS not started
  • ASM resource not configured to auto-start
  • Dependency between database and ASM resource broken
  • ASM disk group not mounted at startup
  • Wrong ORACLE_HOME for ASM connection
  • Database user not in OSDBA/OSASM groups
  • ASM password file missing or invalid
Terminal window
# Verify ASM is running
ps -ef | grep asm_pmon | grep -v grep
# Check via CRS
crsctl stat res ora.asm -t
# In Oracle Restart
srvctl status asm
# In RAC
srvctl status asm -node node1
Terminal window
# Check listener for ASM service
lsnrctl status
# Look for "+ASM" service in output
lsnrctl status LISTENER | grep -i asm
# Verify LOCAL_LISTENER on ASM instance
sqlplus / as sysasm
SQL> SHOW PARAMETER local_listener
SQL> SHOW PARAMETER remote_listener
Terminal window
# Find ASM alert log
ADR_BASE=$(adrci -script "show base" 2>/dev/null | head -1)
find $ADR_BASE -name "alert_+ASM*.log" -mtime -1
# Check recent errors
tail -200 $ORACLE_BASE/diag/asm/+asm/+ASM1/trace/alert_+ASM1.log
Terminal window
# Try connecting to ASM from DB host
. oraenv # set DB env first
sqlplus sys@+ASM as sysasm
# Or via TNS
tnsping +ASM
Terminal window
# All resources state
crsctl stat res -t
# ASM-specific
crsctl stat res ora.asm -p | grep -i auto_start
# Database dependency on ASM
srvctl config database -d PROD | grep -i diskgroup
Terminal window
# Oracle Restart / single instance
srvctl start asm
# RAC - start on specific node
srvctl start asm -node node1
# Direct startup (last resort)
. oraenv # Set ASM environment
sqlplus / as sysasm
SQL> STARTUP;
-- After ASM is up, mount diskgroups
sqlplus / as sysasm
SQL> ALTER DISKGROUP data MOUNT;
SQL> ALTER DISKGROUP fra MOUNT;
-- Or via srvctl
-- $ srvctl start diskgroup -diskgroup DATA
Terminal window
# Restart listener
srvctl stop listener -listener LISTENER
srvctl start listener -listener LISTENER
# Force ASM service registration
sqlplus / as sysasm
SQL> ALTER SYSTEM REGISTER;
# Verify
lsnrctl status | grep -i asm
Terminal window
# Recreate database resource with proper ASM dependency
srvctl modify database -d PROD -diskgroup "DATA,FRA"
# Set auto-start
crsctl modify resource ora.asm -attr "AUTO_START=always"
# Restart Oracle Restart
crsctl stop has
crsctl start has
crsctl check has
Terminal window
# Check grid user groups
id grid
# Should include: oinstall, asmadmin, asmdba, asmoper
# Check oracle user groups
id oracle
# Should include: oinstall, dba, asmdba
# Add missing membership
usermod -a -G asmdba oracle
Terminal window
# Locate existing password file
ls -la $ORACLE_HOME/dbs/orapw+ASM
ls -la /u01/app/19.0.0/grid/dbs/orapw+ASM
# Recreate
cd $ORACLE_HOME/dbs
orapwd file=orapw+ASM password=YourPwd entries=10 force=y
# In RAC, distribute or recreate on each node

Scenario 1: Database Won’t Start After Reboot

Section titled “Scenario 1: Database Won’t Start After Reboot”
SQL> STARTUP;
ORA-01078: failure in processing system parameters
ORA-15077: could not locate ASM instance serving a required diskgroup

Fix: Check crsctl stat res ora.asm and start ASM via srvctl start asm.

ORA-15077: could not locate ASM instance serving a required diskgroup

Fix: All ASM instances down. Start CRS: crsctl start crs (root); for HAS: crsctl start has.

Database won't open. ASM running but diskgroup not visible.
ORA-15077: could not locate ASM instance serving a required diskgroup

Fix: Patch may have left ASM in restricted mode. Check SELECT instance_name, status FROM v$instance; on ASM, restart if needed.

SQL> STARTUP;
ORA-01078: failure in processing system parameters
ORA-15077: could not locate ASM instance serving a required diskgroup
ORA-15001: diskgroup "DATA" does not exist or is not mounted
[oracle@node1]$ srvctl status asm
ASM is not running.
[oracle@node1]$ srvctl start asm
ASM is started.
[oracle@node1]$ srvctl start diskgroup -diskgroup DATA
[oracle@node1]$ srvctl start diskgroup -diskgroup FRA
[oracle@node1]$ srvctl start database -d PROD
Terminal window
# Ensure ASM auto-starts
crsctl modify resource ora.asm -attr "AUTO_START=always"
# Verify database depends on diskgroups
srvctl modify database -d PROD -diskgroup "DATA,FRA"
# Check current state
srvctl config database -d PROD
/etc/cron.d/asm-health
#!/bin/bash
# Run 2 minutes after boot
if ! pgrep -f asm_pmon > /dev/null; then
logger -t asm-health "ASM not running, attempting start"
su - grid -c "srvctl start asm"
sleep 10
if ! pgrep -f asm_pmon > /dev/null; then
echo "ASM failed to start at boot" | mail -s "ASM ALERT" [email protected]
fi
fi
#!/bin/bash
# Continuous ASM availability check
while true; do
if ! sqlplus -s / as sysasm <<< "SELECT 1 FROM dual;" > /dev/null 2>&1; then
echo "$(date): ASM unreachable" >> /var/log/asm_monitor.log
fi
sleep 60
done
  1. Stop databases first: srvctl stop database -d PROD
  2. Stop diskgroups: srvctl stop diskgroup -diskgroup DATA -force
  3. Stop ASM: srvctl stop asm -force
  4. Start ASM: srvctl start asm
  5. Mount diskgroups: srvctl start diskgroup -diskgroup DATA
  6. Start databases: srvctl start database -d PROD
  • ORA-01078: Failure in processing system parameters
  • ORA-15001: Diskgroup does not exist or is not mounted
  • ORA-15032: Not all alterations performed
  • ORA-15110: No diskgroups mounted
  • ORA-29701: Unable to connect to Cluster Synchronization Service
  • Verify ASM instance is running (ps -ef | grep asm_pmon)
  • Check CRS state (crsctl stat res ora.asm)
  • Confirm ASM is registered with listener
  • Validate diskgroups are mounted on ASM
  • Check Oracle Restart database/diskgroup dependencies
  • Verify OS user group memberships
  • Inspect ASM alert log for startup errors