-
Hi folks,
A database was shutdown abort when the archive log destination was full. Trying to restart the database after freeing up space resulted in the following error.
Any help?
Please someone's job is on the line.
$ svrmgrl
Oracle Server Manager Release 3.1.5.0.0 - Production
(c) Copyright 1997, Oracle Corporation. All Rights Reserved.
Oracle8i Release 8.1.5.0.0 - Production
With the Java option
PL/SQL Release 8.1.5.0.0 - Production
SVRMGR> connect internal
Connected.
SVRMGR> startup open
ORA-27146: post/wait initialization failed
-
When encountering a specific error code, I usually go to Metalink. Here is what I found; I think it will help you:
Doc ID:
Note:115235.1
Subject:
Resolving ORA-7279 or
ORA-27146 errors when starting
instance
Type:
PROBLEM
Creation Date:
16-JUL-2000
Last Revision Date:
19-JUL-2000
Problem Description
-------------------
When attempting to start an instance, you receive the following error:
ORA-7279: spcre: semget error, unable to get first semaphore set
This error may possibly be accompanied by one or more of the following
additional errors:
ORA-600: internal error code, arguments [SKGMBUSY]
SVR4 error: 28: no space left on device
If you are using version 8.1.x or higher, you receive the following
error instead of the ora-7279 when attempting to start an instance:
ORA-27146: post/wait initialization failed
These errors happen whenever attempting to start an instance, which
includes, but is not limited to, creating a new database during an install,
creating a new database with an existing install, starting an existing
database which had the initSID.ora parameter PROCESSES changed, or starting
an existing database which was either shutdown incorrectly or crashed.
Solution Description
--------------------
The problem is that there are not enough semaphore to start the instance.
This can be resolved based on one of the two scenarios below:
Scenario 1
----------
If no new instances have been created and you are trying to start an
existing database which was shutdown incorrectly or crashed, the semaphores
from the crashed instance may still be allocated and will need to be removed.
Step 1) Before removing semaphores, you should be certain that there are no
running instances using them. First check for running instances using
the following command:
% ps -ef | grep -v grep | grep pmon
If there are no pmon processes running, then there should be no
semaphores owned by the oracle user. If there are semaphores owned by
the oracle user, they can safely be removed. See steps 3 and 4 for
the commands to list and remove semaphores.
Step 2) If you have multiple instances running, you will need to either shut
them down or determine which semaphores are being used by each
instance. It is recommended that you shut down all of the instances,
but if this is not possible, then follow the instructions below.
A) If the running instances are version 8.1.x or higher, set your
environment to that of the running instance, then run the following
command:
% $ORACLE_HOME/bin/sysresv
This will show you the semaphore ids being used by this instance.
Make a note of them and repeat the sysresv command for each running
instance.
B) If you are not running version 8.1.x or higher, use the following
commands to get a listing of semaphores:
% svrmgrl
svrmgr> connect internal
svrmgr> oradebug ipc
Repeat these commands for each running instance making note of the
"Semaphore identifiers" for each.
Step 3) Now get a list of all of the allocated semaphores on the system using
the following command:
% ipcs -sb | grep -v grep | grep <oracle>
where <oracle> is the name of the oracle user.
Compare the ouput of the ipcs command with the notes you made from the
sysresv command or oradebug ipc command , and remove any semaphores
that are not on your list.
Step 4) You can remove semaphores using the following command:
% ipcrm -s <semid>
where <semid> is the semaphore id shown in the second column of the
ipcs ouput titled ID.
Step 5) Now try to start your instance again.
Scenario 2
----------
You are trying to start a new instance, or an existing instance that had the
initSID.ora parameter PROCESSES changed. You will need to raise the kernel
parameter SEMMNS.
Set the kernel parameter SEMMNS to double the sum of all of the initSID.ora
PROCESSES parameters on the system.
For example, if you have 5 instances with the initSID.ora PROCESSES parameter
set to 25, 50, 100, 200, and 250, then set the kernel parameter SEMMNS equal
to 1250.
((25 + 50 + 100 + 200 + 250) * 2) = 1250
After making changes to the kernel parameter SEMMNS, you will be required to
reboot the system. Depending on your operating system, you may also be
required to rebuild the kernel. For more information on changing kernel
parameters, please consult your OS documentation and/or your OS vendor.
Explanation
-----------
When an Oracle instance is started, oracle will attempt to allocate all of the
needed semaphores. If it is unable to do so, it will generate either an
ora-7279 or ora-27146 error and will fail to start the instance.
References
----------
Note:15566.1
Additional Search Words
-----------------------
.
Copyright (c) 1995,2000 Oracle Corporation. All Rights Reserved. Legal
Notices and Terms of Use.
-
Thanks Carp. The problem was indeed due to incorrect value of the PROCESSES parameter. Once this value was changed to the old value, the problem was resolved
Cheers.
-
Metalink
Carp,
Can you tell me more about Metalink. URL would be useful.
--
Dmitri Don
-
Metalink
Metalink is your Oracle online support. metalink.oracle.com
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|