OSD-04400: unable to acquire internal semaphore for process and OS 183 (Windows)

I hit the following problem with a 9.2.0.8 database running on Windows 2003 this morning (info pulled from the alert log).  The database had failed to restart after a client’s cold backup process 🙄

ALTER DATABASE MOUNT
Wed Jan 15 22:32:08 2014
ORA-09341: scumnt: unable to mount database
OSD-04400: unable to acquire internal semaphore for process
O/S-Error: (OS 183) Cannot create a file when that file already exists.

Oracle documentation and MOS didn’t provide me with too much information to go on:

OSD-04400: Unable to acquire internal semaphore for process
Cause: Oracle database has exceeded the maximum number of connections.
Action: Delete any unused connections and try again.

When I tried starting up the database manually, Oracle then gave me a little more to go on:

ORA-01102: cannot mount database in EXCLUSIVE mode

So another instance had the database in a mounted state…or at least it thought it had!

In the end, I managed to resolve it by simply doing the following, from the command prompt:

set ORACLE_SID=<SID>
sqlplus /nolog
conn sys/**** as sysdba
shutdown abort
quit

…then I restated the Windows ‘OracleService<SID>’, checked the alert log and everything started up OK this time! …it’s not happened again since – very strange…

If that didn’t work, I’d have probably opted for rebooting the machine and crossing my fingers, but thankfully it didn’t come to that 🙂

I stumbled across this useful link in the process, which details other scenarios that may lead to ORA-01102 errors: http://www.orafaq.com/forum/t/40030/0/

2 thoughts on “OSD-04400: unable to acquire internal semaphore for process and OS 183 (Windows)

  1. Thanks i had similar and fixed it the same way.

    On windows 2012 R2
    I got the same when doing an upgrade from 12.1 -> 12.2 after creating new service it would not mount.
    In the end I stopped server, listener, command prompt window.
    Waited
    Re-started listener, re-started dbservice,
    I did shut down abort once I had let the service fully start (checked with adrci that it has terminated) as it will try to startup but fail due to the fact that it has not been upgraded.

    I think its a windows lock issues as i’m doing this exercise on a VM and it has worked 3 times already. (i reverted my snapshots to test different recovery methods)

Leave a comment

Your e-mail address will not be published. Required fields are marked *