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 Overview
Section titled “Error Overview”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.
Common Causes
Section titled “Common Causes”ASM Instance Not Running
Section titled “ASM Instance Not Running”- 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)
Listener and Registration Issues
Section titled “Listener and Registration Issues”- ASM not registered with local listener
- Database tried connecting before ASM registration completed
- Listener crashed or misconfigured
LOCAL_LISTENERparameter wrong on ASM
Oracle Restart / Grid Infrastructure
Section titled “Oracle Restart / Grid Infrastructure”- CRS not started
- ASM resource not configured to auto-start
- Dependency between database and ASM resource broken
- ASM disk group not mounted at startup
Network and Privilege Issues
Section titled “Network and Privilege Issues”- Wrong
ORACLE_HOMEfor ASM connection - Database user not in
OSDBA/OSASMgroups - ASM password file missing or invalid
Diagnostic Steps
Section titled “Diagnostic Steps”Check ASM Status
Section titled “Check ASM Status”# Verify ASM is runningps -ef | grep asm_pmon | grep -v grep
# Check via CRScrsctl stat res ora.asm -t
# In Oracle Restartsrvctl status asm
# In RACsrvctl status asm -node node1Verify Listener Registration
Section titled “Verify Listener Registration”# Check listener for ASM servicelsnrctl status
# Look for "+ASM" service in outputlsnrctl status LISTENER | grep -i asm
# Verify LOCAL_LISTENER on ASM instancesqlplus / as sysasmSQL> SHOW PARAMETER local_listenerSQL> SHOW PARAMETER remote_listenerInspect ASM Alert Log
Section titled “Inspect ASM Alert Log”# Find ASM alert logADR_BASE=$(adrci -script "show base" 2>/dev/null | head -1)find $ADR_BASE -name "alert_+ASM*.log" -mtime -1
# Check recent errorstail -200 $ORACLE_BASE/diag/asm/+asm/+ASM1/trace/alert_+ASM1.logTest Connectivity From Database
Section titled “Test Connectivity From Database”# Try connecting to ASM from DB host. oraenv # set DB env firstsqlplus sys@+ASM as sysasm
# Or via TNStnsping +ASMCheck CRS Resources
Section titled “Check CRS Resources”# All resources statecrsctl stat res -t
# ASM-specificcrsctl stat res ora.asm -p | grep -i auto_start
# Database dependency on ASMsrvctl config database -d PROD | grep -i diskgroupResolution Steps
Section titled “Resolution Steps”1. Start ASM Instance
Section titled “1. Start ASM Instance”# Oracle Restart / single instancesrvctl start asm
# RAC - start on specific nodesrvctl start asm -node node1
# Direct startup (last resort). oraenv # Set ASM environmentsqlplus / as sysasmSQL> STARTUP;2. Mount Required Diskgroup
Section titled “2. Mount Required Diskgroup”-- After ASM is up, mount diskgroupssqlplus / as sysasmSQL> ALTER DISKGROUP data MOUNT;SQL> ALTER DISKGROUP fra MOUNT;
-- Or via srvctl-- $ srvctl start diskgroup -diskgroup DATA3. Fix Listener Registration
Section titled “3. Fix Listener Registration”# Restart listenersrvctl stop listener -listener LISTENERsrvctl start listener -listener LISTENER
# Force ASM service registrationsqlplus / as sysasmSQL> ALTER SYSTEM REGISTER;
# Verifylsnrctl status | grep -i asm4. Repair Oracle Restart Dependencies
Section titled “4. Repair Oracle Restart Dependencies”# Recreate database resource with proper ASM dependencysrvctl modify database -d PROD -diskgroup "DATA,FRA"
# Set auto-startcrsctl modify resource ora.asm -attr "AUTO_START=always"
# Restart Oracle Restartcrsctl stop hascrsctl start hascrsctl check has5. Validate OS Group Membership
Section titled “5. Validate OS Group Membership”# Check grid user groupsid grid# Should include: oinstall, asmadmin, asmdba, asmoper
# Check oracle user groupsid oracle# Should include: oinstall, dba, asmdba
# Add missing membershipusermod -a -G asmdba oracle6. Recreate ASM Password File
Section titled “6. Recreate ASM Password File”# Locate existing password filels -la $ORACLE_HOME/dbs/orapw+ASMls -la /u01/app/19.0.0/grid/dbs/orapw+ASM
# Recreatecd $ORACLE_HOME/dbsorapwd file=orapw+ASM password=YourPwd entries=10 force=y
# In RAC, distribute or recreate on each nodeCommon Scenarios
Section titled “Common Scenarios”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 parametersORA-15077: could not locate ASM instance serving a required diskgroupFix: Check crsctl stat res ora.asm and start ASM via srvctl start asm.
Scenario 2: ASM Cluster Failure
Section titled “Scenario 2: ASM Cluster Failure”ORA-15077: could not locate ASM instance serving a required diskgroupFix: All ASM instances down. Start CRS: crsctl start crs (root); for HAS: crsctl start has.
Scenario 3: After Patch Bundle
Section titled “Scenario 3: After Patch Bundle”Database won't open. ASM running but diskgroup not visible.ORA-15077: could not locate ASM instance serving a required diskgroupFix: Patch may have left ASM in restricted mode. Check SELECT instance_name, status FROM v$instance; on ASM, restart if needed.
Sample Output
Section titled “Sample Output”SQL> STARTUP;ORA-01078: failure in processing system parametersORA-15077: could not locate ASM instance serving a required diskgroupORA-15001: diskgroup "DATA" does not exist or is not mounted
[oracle@node1]$ srvctl status asmASM is not running.
[oracle@node1]$ srvctl start asmASM is started.
[oracle@node1]$ srvctl start diskgroup -diskgroup DATA[oracle@node1]$ srvctl start diskgroup -diskgroup FRA
[oracle@node1]$ srvctl start database -d PRODPrevention Strategies
Section titled “Prevention Strategies”Auto-Start Configuration
Section titled “Auto-Start Configuration”# Ensure ASM auto-startscrsctl modify resource ora.asm -attr "AUTO_START=always"
# Verify database depends on diskgroupssrvctl modify database -d PROD -diskgroup "DATA,FRA"
# Check current statesrvctl config database -d PRODBoot-Time Validation
Section titled “Boot-Time Validation”#!/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 fifiMonitoring Script
Section titled “Monitoring Script”#!/bin/bash# Continuous ASM availability checkwhile 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 60doneDocumented Restart Procedure
Section titled “Documented Restart Procedure”- Stop databases first:
srvctl stop database -d PROD - Stop diskgroups:
srvctl stop diskgroup -diskgroup DATA -force - Stop ASM:
srvctl stop asm -force - Start ASM:
srvctl start asm - Mount diskgroups:
srvctl start diskgroup -diskgroup DATA - Start databases:
srvctl start database -d PROD
Related Errors
Section titled “Related Errors”- 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
Troubleshooting Checklist
Section titled “Troubleshooting Checklist”- 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