I hit the following problem with a 18.104.22.168 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/