ORA-27101: shared memory realm does not exist

ORA-27101: shared memory realm does not exist
Cause: Unable to locate shared memory realm
Action: Verify that the realm is accessible

Reference: Oracle Documentation

There may be 2 scenarios, which may lead you to encounter ORA-27101
1) Invalid ORACLE_HOME and ORACLE_SID
2) Database is down

[oracle@192 ~]$ sqlplus scott/tiger
SQL*Plus: Release 10.2.0.1.0 - Production on Wed May 22 16:48:05 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory

Scenario 1: Invalid ORACLE_HOME and ORACLE_SID:

ORA-27101 is usually due to the invalid ORACLE_HOME and ORACLE_SID parameters at OS level. You should investigate that ORACLE_HOME and ORACLE_SID are set correctly, and ORACLE_HOME should be without trailing slash.

[oracle@192 ~]$ echo $ORACLE_HOME
/u01/app/oracle/product/10.2.0/db_1

[oracle@192 ~]$ echo $ORACLE_SID
testdb

In our case ORACLE_SID was not correct, we need to export ORACLE_SID to the valid one which is ora10g

[oracle@192 ~]$ export ORACLE_SID=ora10g
[oracle@192 ~]$ sqlplus scott/tiger
SQL*Plus: Release 10.2.0.1.0 - Production on Wed May 22 16:52:11 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options


Scenario 2: Database is down:

You may also face it when the database is down, to solve ORA-27101 you may have to start the database only

[oracle@192 ~]$ sqlplus sys/sys as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Wed May 22 17:07:38 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to an idle instance.

SQL> startup
ORACLE instance started.
Total System Global Area 1224736768 bytes
Fixed Size                  1219112 bytes
Variable Size             167773656 bytes
Database Buffers         1040187392 bytes
Redo Buffers               15556608 bytes
Database mounted.
Database opened.

Related Posts:
ORA-04031: unable to allocate n bytes of shared memory
- ORA-01034: ORACLE not available
- ORA-01157: cannot identify/lock data file string - see DBWR trace file
- ORA-00849: SGA_TARGET cannot be set to more than MEMORY_MAX_TARGET
- ORA-00604: error occurred at recursive SQL level string
- ORA-00600: internal error code
- ORA-00257: archiver error. Connect internal only, until freed

5 comments:

  1. Neither of these worked for me, but restarting the OracleServiceXE fixes it.

    But it's annoying. I'd like to find the cause and prevent it from happening in the first place.

    ReplyDelete
    Replies
    1. This would be a case in Windows system where u need to start the service prior to starting database.

      Delete
  2. Thanks.. it worked for me

    ReplyDelete
  3. Nice to see your post

    ReplyDelete