ORA-01034: ORACLE Not Available – Complete Solution for Oracle Database Administrators
ORA-01034: ORACLE not available is one of the most common Oracle Database startup and connectivity errors encountered by Oracle DBAs, developers, and system administrators. This error typically indicates that the Oracle instance is not running or that the client cannot connect to an active Oracle database instance.
Whether you are working with Oracle Database 11g, 12c, 18c, 19c, 21c, or Oracle Database 23ai, understanding the root cause of ORA-01034 is essential for restoring database availability quickly and minimizing production downtime.
In this comprehensive Oracle DBA guide, you'll learn the causes, symptoms, diagnostic techniques, SQL commands, Linux checks, recovery procedures, and best practices to resolve the ORA-01034 error in production environments.
Table of Contents
- What is ORA-01034?
- Error Message
- Why Does ORA-01034 Occur?
- Common Causes
- Symptoms
- How Oracle Startup Works
- Initial Diagnostic Steps
- Verify Oracle Environment Variables
- Check Database Status
- Next Steps
Featured Snippet
ORA-01034: ORACLE not available occurs when a user attempts to connect to an Oracle database whose instance is not running or cannot be accessed. The issue is commonly caused by a database that has not been started, incorrect ORACLE_SID settings, invalid Oracle environment variables, or failed background processes.
Error Message
ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux-x86_64 Error: 2: No such file or directory
Depending on the environment, you may also encounter:
ORA-01034: ORACLE not available Process ID: 0 Session ID: 0 Serial Number: 0
What Does ORA-01034 Mean?
The ORA-01034 error indicates that the Oracle client cannot connect to a running database instance. Although the Oracle software may be installed correctly, the database itself is unavailable because the instance has not been started or cannot be located.
An Oracle database consists of two major components:
- Oracle Instance (SGA + Background Processes)
- Oracle Database (Datafiles, Control Files, Online Redo Logs)
If the instance is not available, Oracle returns ORA-01034 whenever a connection attempt is made.
Common Causes of ORA-01034
| Cause | Description |
|---|---|
| Database Instance Not Started | The Oracle instance is shut down. |
| Incorrect ORACLE_SID | The environment points to the wrong database. |
| Incorrect ORACLE_HOME | The Oracle binaries being used do not match the database installation. |
| Missing Initialization Parameter File | PFILE or SPFILE cannot be found. |
| Corrupted Control Files | Oracle cannot mount the database. |
| Memory Allocation Failure | SGA cannot be created successfully. |
| Operating System Resource Issues | Insufficient shared memory or kernel parameters. |
| Failed Background Processes | SMON, PMON, DBWn, LGWR, or CKPT terminated unexpectedly. |
Symptoms
When ORA-01034 occurs, users may experience one or more of the following:
- Applications cannot connect to Oracle.
- SQL*Plus login fails.
- Oracle Enterprise Manager reports the database as down.
- Listener appears to be running, but database connections fail.
- Scheduled jobs stop executing.
- Production applications become unavailable.
How Oracle Database Startup Works
Understanding the Oracle startup process helps identify where the failure occurs.
- Oracle allocates the System Global Area (SGA).
- Background processes such as PMON, SMON, DBWn, LGWR, and CKPT start.
- Control files are opened.
- Database is mounted.
- Datafiles and redo log files are opened.
- The database enters the OPEN state and becomes available to users.
If any of these stages fail, users may receive ORA-01034 or related startup errors.
Step 1: Verify the Database Instance Is Running
On Linux or UNIX, check whether the Oracle background processes are running:
ps -ef | grep pmon
Example output:
oracle 12345 1 0 09:10 ? 00:00:00 ora_pmon_PROD
If no PMON process appears, the Oracle instance is not running.
Step 2: Verify the ORACLE_SID Environment Variable
Display the current Oracle SID:
echo $ORACLE_SID
Example:
PROD
If the SID is incorrect, export the correct value:
export ORACLE_SID=PROD
Step 3: Verify ORACLE_HOME
Check the Oracle Home directory:
echo $ORACLE_HOME
Example:
/u01/app/oracle/product/19.0.0/dbhome_1
An incorrect ORACLE_HOME can prevent SQL*Plus from connecting to the correct database instance.
Step 4: Attempt a Local SYSDBA Connection
Connect locally using operating system authentication:
sqlplus / as sysdba
If the connection succeeds, check the instance status:
SELECT STATUS FROM V$INSTANCE;
Typical results include:
- STARTED
- MOUNTED
- OPEN
Step 5: Check the Alert Log
The Oracle alert log provides valuable information about startup failures, missing files, memory issues, and background process errors.
Review the alert log for messages immediately preceding ORA-01034 to identify the underlying root cause.
Professional DBA Tip
Never assume ORA-01034 is the root cause. It is usually a symptom of another issue, such as an incorrect environment configuration, missing initialization files, insufficient memory, or database startup failure. Always investigate the alert log and associated Oracle errors before applying a fix.
Step 6: Start the Oracle Database
If the Oracle instance is not running, connect as SYSDBA and start the database.
sqlplus / as sysdba
Start the database:
SQL> STARTUP;
Successful output:
ORACLE instance started. Total System Global Area ... Fixed Size ... Variable Size ... Database Buffers ... Redo Buffers ... Database mounted. Database opened.
If the database starts successfully, reconnect from your application or SQL*Plus.
Step 7: Check the Instance Status
Verify the current database status:
SELECT INSTANCE_NAME,
STATUS,
DATABASE_STATUS
FROM V$INSTANCE;
Example:
| INSTANCE_NAME | STATUS | DATABASE_STATUS |
|---|---|---|
| PROD | OPEN | ACTIVE |
Step 8: Verify Database Open Mode
SELECT NAME,
OPEN_MODE
FROM V$DATABASE;
Expected output:
NAME OPEN_MODE --------- ---------------- PROD READ WRITE
Step 9: Check Listener Status
Sometimes the database is running, but the listener is unavailable or not aware of the instance.
Check the listener:
lsnrctl status
Verify that:
- Listener is running.
- Database service is registered.
- No listener errors are reported.
If the listener is stopped:
lsnrctl start
Step 10: Verify Database Registration
If the listener does not show your database service, force dynamic registration:
ALTER SYSTEM REGISTER;
Then execute:
lsnrctl status
The database service should now appear.
Step 11: Verify the Initialization Parameter File
Oracle requires either an SPFILE or PFILE during startup.
Check whether the SPFILE exists:
SHOW PARAMETER spfile;
If Oracle reports that the parameter file is missing, locate or recreate it before attempting another startup.
Step 12: Verify Shared Memory (ORA-27101)
ORA-01034 is frequently accompanied by:
ORA-27101: shared memory realm does not exist
This usually indicates one of the following:
- Database instance is not started.
- Incorrect ORACLE_SID.
- Incorrect ORACLE_HOME.
- Shared memory was removed.
Verify Oracle environment variables:
echo $ORACLE_HOME echo $ORACLE_SID
If necessary:
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 export ORACLE_SID=PROD
Step 13: Verify Background Processes
Check whether Oracle background processes are active:
ps -ef | grep ora_
Important processes include:
- PMON
- SMON
- DBW0
- LGWR
- CKPT
- ARCn
If none are running, the database instance has not started successfully.
Step 14: Review the Alert Log
The alert log is the first place every Oracle DBA should investigate after encountering ORA-01034.
Common errors found before ORA-01034 include:
- ORA-00205
- ORA-00210
- ORA-00313
- ORA-00600
- ORA-01157
- ORA-01589
- ORA-04031
- ORA-27102
Always resolve these underlying errors before retrying the startup.
Production Scenario 1
Database Was Accidentally Shut Down
Symptoms
ORA-01034: ORACLE not available
Solution
sqlplus / as sysdba STARTUP;
Production Scenario 2
Incorrect ORACLE_SID
Symptoms
ORA-01034 ORA-27101
Diagnosis
echo $ORACLE_SID
Fix
export ORACLE_SID=PROD
Reconnect using SQL*Plus.
Production Scenario 3
Listener Running but Database Unavailable
Symptoms
- Listener status is READY.
- Applications receive ORA-01034.
Solution
- Connect locally as SYSDBA.
- Verify instance status.
- Open the database if necessary.
- Register services:
ALTER SYSTEM REGISTER;
Useful Oracle DBA Diagnostic Commands
| Purpose | Command |
|---|---|
| Check PMON | ps -ef | grep pmon |
| Check ORACLE_HOME | echo $ORACLE_HOME |
| Check ORACLE_SID | echo $ORACLE_SID |
| Start Listener | lsnrctl start |
| Listener Status | lsnrctl status |
| Connect SYSDBA | sqlplus / as sysdba |
| Start Database | STARTUP; |
| Register Services | ALTER SYSTEM REGISTER; |
Oracle DBA Best Practices
- Always verify ORACLE_HOME and ORACLE_SID before troubleshooting.
- Review the alert log before restarting the database.
- Monitor database availability using Enterprise Manager or custom scripts.
- Configure automatic startup after server reboot where appropriate.
- Test backup and recovery procedures regularly.
- Monitor listener status proactively.
Professional DBA Tip
ORA-01034 is often the final symptom rather than the primary problem. Investigate preceding Oracle errors, listener logs, and the alert log to identify the true root cause. Solving the underlying issue will usually eliminate ORA-01034 automatically.
Advanced Troubleshooting Techniques
When the basic troubleshooting steps do not resolve ORA-01034: ORACLE not available, the issue is often caused by an underlying database startup failure, corrupted files, insufficient operating system resources, or Oracle configuration problems. An experienced Oracle DBA should systematically investigate each component before attempting recovery.
Check Database Startup Stage
Connect as SYSDBA and determine how far the database startup progresses.
sqlplus / as sysdba STARTUP NOMOUNT;
If successful, continue:
ALTER DATABASE MOUNT;
Finally:
ALTER DATABASE OPEN;
If the database fails during one of these stages, Oracle usually reports the actual error responsible for ORA-01034.
Common Startup Failures
| Error | Possible Cause |
|---|---|
| ORA-00205 | Control file missing or inaccessible |
| ORA-00313 | Redo log file unavailable |
| ORA-01157 | Datafile cannot be identified or locked |
| ORA-01589 | RESETLOGS or NORESETLOGS required |
| ORA-27102 | Out of memory |
| ORA-04031 | Shared memory allocation failure |
| ORA-00600 | Internal Oracle error |
Verify Control Files
Display the configured control files:
SHOW PARAMETER control_files;
Confirm that every listed control file:
- Exists on disk.
- Has correct permissions.
- Is not corrupted.
Missing control files commonly prevent the instance from mounting.
Verify Datafiles
After mounting the database:
SELECT FILE#,
NAME,
STATUS
FROM V$DATAFILE;
If Oracle reports missing or inaccessible datafiles, restore or recover them before opening the database.
Verify Redo Log Files
SELECT GROUP#,
STATUS,
MEMBER
FROM V$LOGFILE;
Missing redo log members frequently cause startup failures.
Check Available Disk Space
Oracle may fail to start if critical filesystems are full.
df -h
Pay special attention to:
- Oracle Home
- Oracle Base
- Archive Log destination
- Fast Recovery Area (FRA)
Verify Fast Recovery Area
If the FRA is completely full, archived redo log generation may stop, resulting in database availability issues.
SELECT NAME, SPACE_LIMIT, SPACE_USED FROM V$RECOVERY_FILE_DEST;
If necessary, delete obsolete backups using RMAN.
RMAN> DELETE OBSOLETE;
Check Memory Configuration
Insufficient memory can prevent Oracle from creating the SGA.
Verify memory parameters:
SHOW PARAMETER memory_target; SHOW PARAMETER sga_target; SHOW PARAMETER pga_aggregate_target;
Also verify operating system shared memory settings.
Production Scenario 4
Server Rebooted Unexpectedly
Symptoms
- Applications cannot connect.
- ORA-01034 returned.
- PMON process missing.
Solution
- Verify Oracle environment variables.
- Check listener status.
- Review alert log.
- Start the database.
Production Scenario 5
Database Starts but Does Not Open
Sometimes the instance starts successfully but remains mounted.
Check status:
SELECT STATUS FROM V$INSTANCE;
If status is:
- MOUNTED
Open the database:
ALTER DATABASE OPEN;
Production Scenario 6
Listener Running but Service Missing
If the listener is active but clients still receive ORA-01034:
lsnrctl status
Register services manually:
ALTER SYSTEM REGISTER;
If necessary, restart the listener.
Monitoring Queries
Check Instance Status
SELECT INSTANCE_NAME, STATUS, DATABASE_STATUS FROM V$INSTANCE;
Check Database Open Mode
SELECT NAME, OPEN_MODE FROM V$DATABASE;
Check Archive Log Mode
ARCHIVE LOG LIST;
Check Database Role
SELECT DATABASE_ROLE FROM V$DATABASE;
Oracle DBA Best Practices
- Configure automatic database startup after server reboot.
- Monitor PMON and listener processes.
- Regularly review the alert log.
- Maintain sufficient disk space for archived logs.
- Validate RMAN backups periodically.
- Monitor memory usage and shared memory configuration.
- Use Oracle Enterprise Manager or custom monitoring scripts for proactive alerting.
Preventing ORA-01034
Although not every occurrence can be avoided, these practices significantly reduce the likelihood of encountering ORA-01034:
- Implement proactive database health checks.
- Monitor listener and database services.
- Automate startup procedures.
- Test backup and recovery regularly.
- Maintain proper Oracle environment variables.
- Monitor FRA usage and archive log generation.
- Keep Oracle software patched with current Release Updates (RUs).
Professional DBA Tip
In enterprise environments, ORA-01034 is frequently reported by applications before DBAs are aware of an outage. Implement monitoring tools that immediately alert you when the Oracle instance or listener becomes unavailable, reducing downtime and improving service availability.
Frequently Asked Questions (FAQ)
1. What does ORA-01034: ORACLE Not Available mean?
ORA-01034 indicates that the Oracle database instance is not available for client connections. This typically occurs because the database instance is not started, the Oracle environment variables are incorrect, the listener is not properly configured, or another startup failure has occurred.
2. Is ORA-01034 a database corruption error?
No. ORA-01034 itself does not indicate database corruption. It simply means the Oracle instance cannot be accessed. However, underlying errors such as corrupted control files, missing datafiles, or redo log issues may prevent the database from starting and result in ORA-01034.
3. Why do ORA-01034 and ORA-27101 appear together?
ORA-27101 (Shared Memory Realm Does Not Exist) commonly accompanies ORA-01034 when Oracle cannot locate the shared memory segment for the specified database instance. This is usually caused by:
- Incorrect ORACLE_SID
- Incorrect ORACLE_HOME
- Database instance not started
- Shared memory removed after server reboot
4. How do I verify whether the Oracle instance is running?
On Linux or UNIX, execute:
ps -ef | grep pmon
If no PMON process exists for your database, the instance is not running.
5. How can I start the Oracle database?
sqlplus / as sysdba STARTUP;
If the database starts successfully, ORA-01034 should no longer occur.
6. Can an incorrect ORACLE_SID cause ORA-01034?
Yes. If ORACLE_SID points to a non-existent or incorrect database instance, Oracle cannot locate the appropriate shared memory and returns ORA-01034.
7. Can the Oracle Listener cause ORA-01034?
Indirectly, yes. Although the listener itself usually does not generate ORA-01034, an improperly configured or stopped listener may prevent clients from connecting to an otherwise healthy database instance.
8. Where should I begin troubleshooting?
Oracle DBAs should always begin with:
- Checking the Oracle Alert Log
- Verifying PMON is running
- Confirming ORACLE_HOME and ORACLE_SID
- Checking Listener Status
- Reviewing startup errors
Oracle DBA Troubleshooting Checklist
| Task | Status |
|---|---|
| Verify ORACLE_HOME | ☐ |
| Verify ORACLE_SID | ☐ |
| Check PMON Process | ☐ |
| Check Listener Status | ☐ |
| Review Alert Log | ☐ |
| Check Control Files | ☐ |
| Verify Datafiles | ☐ |
| Verify Redo Logs | ☐ |
| Check Disk Space | ☐ |
| Validate Memory Configuration | ☐ |
| Open Database | ☐ |
Best Practices to Avoid ORA-01034
- Implement proactive Oracle database monitoring.
- Monitor listener availability continuously.
- Review the Oracle Alert Log daily.
- Enable automatic startup after server reboot.
- Maintain verified RMAN backups.
- Perform regular database health checks.
- Monitor archive log generation and Fast Recovery Area usage.
- Apply Oracle Release Updates (RUs) and security patches.
- Document Oracle environment variables for every database.
- Test disaster recovery procedures periodically.
Related Oracle Error Guides
For additional Oracle troubleshooting, consider linking this article to your related guides:
- ORA-04031: Unable to Allocate Bytes of Shared Memory
- ORA-01578 Oracle data block corruption
- ORA-03113: End-of-File on Communication Channel
- ORA-00600: Internal Error Code Arguments
- ORA-00845: MEMORY_TARGET Not Supported on This System
- RMAN Backup Validation Guide
- Oracle Data Guard Monitoring Queries
Conclusion
ORA-01034: ORACLE Not Available is one of the most common Oracle Database connectivity errors and is often encountered when the Oracle instance is unavailable or cannot be accessed by client applications. While the error message appears simple, the underlying cause can range from an instance that has not been started to incorrect Oracle environment variables, listener issues, memory allocation failures, or damaged database files.
Successful troubleshooting requires a systematic approach. Oracle DBAs should verify the Oracle environment, confirm that background processes are running, review the Alert Log, validate listener registration, and identify any preceding Oracle errors that prevented the database from opening.
By following the diagnostic procedures, SQL commands, Linux checks, and production best practices presented in this guide, administrators can significantly reduce database downtime and restore Oracle services quickly and safely.
Proactive monitoring, regular health checks, validated RMAN backups, and proper disaster recovery planning remain the most effective ways to prevent ORA-01034 from impacting production environments.
About the Author
Abdul Wahid Rana is an experienced Oracle Database Administrator specializing in Oracle Database Administration, Oracle E-Business Suite, Oracle Data Guard, RMAN Backup & Recovery, Oracle RAC, Performance Tuning, High Availability Solutions, and production database troubleshooting.
Through this blog, he shares practical Oracle DBA tutorials, real-world troubleshooting guides, SQL scripts, monitoring solutions, and best practices to help database professionals manage Oracle environments with confidence.
Thank you for reading!
If this guide helped you resolve ORA-01034: ORACLE Not Available, consider sharing it with other Oracle DBAs and bookmark it for future reference.