Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

URGENT! shared memory realm does not exist

Status
Not open for further replies.

elziko

Programmer
Nov 7, 2000
486
GB
I have an Oracle server running (Personal Edition 8.1.7) and on that I'm
using two databases. When my machine starts up I try and access one of the
databases and I get the following error:

ORA-0134: ORACLE not available
ORA-27101: shared memory realm does not exist

Some times this happens for both my databases, sometimes just for one of
them, sometimes for both.

I have absolutely no idea why this is happening but from looking around in
Google if I:

Run: svrmgrl.exe
Then I type: 'connect internal' followed by the password.
Then: 'startup open'

This causes both databases to startup again just fine. However, this machine
is going to a client as a demo and it will be restarted often! How do I
solve the above problem without having to resort to svrmgl.exe every time?
This is really urgent!

--

Cheers,

elziko
 
I have just noticed that the solution I detailed in my first post will sometimes get one database running but not the other!

--

Cheers,

elziko
 
Hi elziko,

pls make clear that the $ORACLE_SID and the $ORACLE_HOME is set clearly. Most the $ORACLE_SID is missing or wrong so the Shared Mem could not be set

ciaoi
Uwe
 
Thanks for your reply but sorry, where/how do I need to check these?

Cheers

elziko
 
I guess the ORACLE_HOME will be the same.
If you're on Unix you can run env| grep ORA and look for ORACLE_SID.
Each of your Databases have a unique ORACLE_SID. If this Variable is clear than you need to set it with
export ORACLE_SID=<your_sid>. After this you should set this command in the .profile of the user.
If you've two different SID's you need to set this Variable manually any time you want to change from one instance to ´the other. You can fix this with a shell-script which allows you to set this Variable by following a CASE-Loop.
 
I just recently had the problem that an 8.1.7 (Personal Oracle on Windows 2000) that I have been using a long time had a similar problem. I suddenly started getting the same error message when connecting and found, like you, that the problem was that the database was not &quot;auto starting&quot;. After a manual start, everything was fine.

One thing to check first - there should be a registry parameter in the HOME section for your database ORA_<sidname>_AUTOSTART of type REG_EXPAND_SZ that is set to TRUE. In my case, this parameter was set properly.

By checking the alert log and turning on tracing in the listener and checking the listener.trc file I found that some error was occuring at startup that prevented the autostart. I found that I could make it autostart by making the following change:

In my SQLNET.ORA file there was a parameter defined like this:

SQLNET.AUTHENTICATION_SERVICES = (NTS)

I found my database would autostart if I either commented out this line or changed the NTS to NONE. Note: Making the change makes it impossible to use operating system authentication, but if you are not using that feature you are OK. Our DBA folks are supposed to be looking in to this a little more, but at this point I don't know why this setting caused a problem.

This problem happened on my computer just after it was converted to use Active Directory. Before Active Directory it autostarted just fine with the original parameter setting.

This may not be your problem, but just in case...



 
Thanks for your suggestions.

appi: I'm on Windows 2000 so your ideas are a bit of a mystery for me! How would I go about that on Win2K?

jee: I have tried removing the entire line you make reference to which made no difference. I'll give it a go your way too.

ALSO, I have just realised that both my databases seem to start as long as I give oracle plenty of time to do its starting up when I boot the server.

Obviously if a DB is starting up I expect a startup/shutdown error but after doing this oracle seems to stop the statup of the databases. If I dont try to logon to any databases until oracle has finished (all disk activity ceases) then it seems to work OK.

Is there any way I can check if oracle has finished starting up all the datbases without trying to login into them?

Cheers,

elziko
 
Hi elziko,

I guess that there should be set this in Registry (HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME) Here you'll find the variables used by Oracle incl. the ORACLE_SID. You can set here the SID for your Database (the name you gave during install). But this will only work on the one DB the second needs to have the change.

Uwe
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top