ORA-01102: cannot mount database in exclusive mode--------------------------------------------------------------------------------Symptom: When opening or mounting the database, the following error is generated:ORA-01102: cannot mount database in EXCLUSIVE mode.Cause: I have only come across this error when using Oracle Parallel Server (OPS). Here, this error indicates that another instance has already been mounted in exclusive or parallel mode.Possibly Remedies: Mount the database in parallel mode.Shutdown all other instances before mounting the database in exclusive mode.Try stopping and then restarting the service 'OracleService<SID>'. =================================================================== Subject: ORA-01102: WHEN STARTING THE DATABASE Type: PROBLEM Status: PUBLISHED Content Type: TEXT/PLAIN Creation Date: 25-JUL-1997 Last Revision Date: 10-FEB-2000 Problem Description: ==================== You are trying to startup the database and you receive the following error: ORA-01102: cannot mount database in EXCLUSIVE mode Cause: Some other instance has the database mounted exclusive or shared. Action: Shutdown other instance or mount in a compatible mode. Problem Explanation: ==================== A database is started in EXCLUSIVE mode by default. Therefore, the ORA-01102 error is misleading and may have occurred due to one of the following reasons: - there is still an "sgadef<sid>.dbf" file in the "ORACLE_HOME/dbs" directory - the processes for Oracle (pmon, smon, lgwr and dbwr) still exist - shared memory segments and semaphores still exist even though the database has been shutdown - there is a "ORACLE_HOME/dbs/lk<sid>" file Search Words: ============= ORA-1102, crash, immediate, abort, fail, fails, migration Solution Description: ===================== Verify that the database was shutdown cleanly by doing the following: 1. Verify that there is not a "sgadef<sid>.dbf" file in the directory "ORACLE_HOME/dbs". % ls $ORACLE_HOME/dbs/sgadef<sid>.dbf If this file does exist, remove it. % rm $ORACLE_HOME/dbs/sgadef<sid>.dbf 2. Verify that there are no background processes owned by "oracle" % ps -ef | grep ora_ | grep $ORACLE_SID If background processes exist, remove them by using the Unix command "kill". For example: % kill -9 <Process_ID_Number> 3. Verify that no shared memory segments and semaphores that are owned by "oracle" still exist % ipcs -b If there are shared memory segments and semaphores owned by "oracle", remove the shared memory segments % ipcrm -m <Shared_Memory_ID_Number> and remove the semaphores % ipcrm -s <Semaphore_ID_Number> NOTE: The example shown above assumes that you only have one database on this machine. If you have more than one database, you will need to shutdown all other databases before proceeding with Step 4. 4. Verify that the "$ORACLE_HOME/dbs/lk<sid>" file does not exist 5. Startup the instance Solution Explanation: ===================== The "lk<sid>" and "sgadef<sid>.dbf" files are used for locking shared memory. It seems that even though no memory is allocated, Oracle thinks memory is still locked. By removing the "sgadef" and "lk" files you remove any knowledge oracle has of shared memory that is in use. Now the database can start. .
When opening or mounting the database, the following error is generated:ORA-01102: cannot mount database in EXCLUSIVE mode.Cause:
I have only come across this error when using Oracle Parallel Server (OPS). Here, this error indicates that another instance has already been mounted in exclusive or parallel mode.Possibly Remedies:
Mount the database in parallel mode.Shutdown all other instances before mounting the database in exclusive mode.Try stopping and then restarting the service 'OracleService<SID>'.
===================================================================
Subject: ORA-01102: WHEN STARTING THE DATABASE
Type: PROBLEM
Status: PUBLISHED
Content Type: TEXT/PLAIN
Creation Date: 25-JUL-1997
Last Revision Date: 10-FEB-2000
Problem Description: ==================== You are trying to startup the database and you receive the following error: ORA-01102: cannot mount database in EXCLUSIVE mode Cause: Some other instance has the database mounted exclusive or shared. Action: Shutdown other instance or mount in a compatible mode. Problem Explanation: ==================== A database is started in EXCLUSIVE mode by default. Therefore, the ORA-01102 error is misleading and may have occurred due to one of the following reasons: - there is still an "sgadef<sid>.dbf" file in the "ORACLE_HOME/dbs" directory - the processes for Oracle (pmon, smon, lgwr and dbwr) still exist - shared memory segments and semaphores still exist even though the database has been shutdown - there is a "ORACLE_HOME/dbs/lk<sid>" file Search Words: ============= ORA-1102, crash, immediate, abort, fail, fails, migration Solution Description: ===================== Verify that the database was shutdown cleanly by doing the following: 1. Verify that there is not a "sgadef<sid>.dbf" file in the directory "ORACLE_HOME/dbs". % ls $ORACLE_HOME/dbs/sgadef<sid>.dbf If this file does exist, remove it. % rm $ORACLE_HOME/dbs/sgadef<sid>.dbf 2. Verify that there are no background processes owned by "oracle" % ps -ef | grep ora_ | grep $ORACLE_SID If background processes exist, remove them by using the Unix command "kill". For example: % kill -9 <Process_ID_Number> 3. Verify that no shared memory segments and semaphores that are owned by "oracle" still exist % ipcs -b If there are shared memory segments and semaphores owned by "oracle", remove the shared memory segments % ipcrm -m <Shared_Memory_ID_Number> and remove the semaphores % ipcrm -s <Semaphore_ID_Number> NOTE: The example shown above assumes that you only have one database on this machine. If you have more than one database, you will need to shutdown all other databases before proceeding with Step 4. 4. Verify that the "$ORACLE_HOME/dbs/lk<sid>" file does not exist 5. Startup the instance Solution Explanation: ===================== The "lk<sid>" and "sgadef<sid>.dbf" files are used for locking shared memory. It seems that even though no memory is allocated, Oracle thinks memory is still locked. By removing the "sgadef" and "lk" files you remove any knowledge oracle has of shared memory that is in use. Now the database can start.
.