Sunday, September 20, 2009

ORA-01034: ,ORA-27101: shared memory realm does not exist

Whenever you try to connect to database it returns message

ERROR:
ORA-01034: ORACLE not available
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
==============================================


In Easy words:
==============
realm means KINGDOM,LAND,REGION.
so
"realm does not exist"
it means the ORACLE kingdom (INSTANCE) you tried to start(attach), isn't there.

may two Two cause behind this
==============================

1. instance not started .
2. use the wrong ORACLE_SID and/or ORACLE_HOME .




Oracle use the oracle_sid and oracle_home to generate a shared memory segment id,
then attach it. If the sid or home differs at all from the sid/home used to
start the instance - you will fail.



Example
================

$ echo $ORACLE_HOME

/do4/oracle/app/product/10.2.0


$ sqlplus /

SQL*Plus: Release 10.2.0.2.0 - Production on Sun Feb 10 12:12:10 2010

Copyright (c) 1982, 2005, Oracle. All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

$ sql> exit

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

$ export ORACLE_HOME=/do4/oracle/app/product/10.2.0/
$ echo $ORACLE_HOME
/do4/oracle/app/product/10.2.0/


$ sqlplus /

SQL*Plus: Release 10.2.0.2.0 - Production on Sun Feb 10 12:12:50 2010

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



just adding that "/" at the end - even though /do4/oracle/app/product/10.2.0
and /do4/oracle/app/product/10.2.0/ are
both VALID directories But they are different oracle homes


===================
on windows
===================



C:\> set ORACLE_HOME=C:\oracle\app\product\10.2.0

C:\> echo %ORACLE_HOME%

=========================================================================
=========================================================================

For Remote Connections:
-------------------------------

1)Verify the ORACLE_HOME is set correctly for all listed Oracle databases. If the ORACLE_HOME points to the different oracle version software, but the database was created using a different version, then this error can occur.

2)Review the listener.ora file and it is properly set. Like if you set ORACLE_HOME path inside listener ended by slash(/) then the error will come.

Incorrect:
(ORACLE_HOME = /oracle/app/oracle/product/10.2.0/)
Correct:
(ORACLE_HOME = /u01/app/oracle/product/10.2.0)

3)If listener.ora use SID then verify that you have set properly ORACLE_SID. Also be sure about listener services by issuing lsnrctl services.

4)Verify the database is running on server machine while you connect as normal user.

No comments: