Thursday, November 7, 2013

ORA-01102: cannot mount database in EXCLUSIVE mode

Environment Details:
OS: Linux Server 5.8 64bit
Version: 11.2.0.3.0
Software Installation location: /u01/app/oracle/product/112030
Database Name: testdb
Datafile's Location: /u01/oradata/testdb

Issue: While starting the database we were getting the error "ORA-01102: cannot mount database in EXCLUSIVE mode".

Error Message:
oracle@linux01=> sqlplus sys as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Wed Nov 6 04:02:10 2013
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Enter password: 
Connected to an idle instance.

SQL> startup

ORACLE instance started.

Total System Global Area  680607744 bytes
Fixed Size                  2231472 bytes
Variable Size             507511632 bytes
Database Buffers          163577856 bytes
Redo Buffers                7286784 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode

Excerpt from the Alert log file
starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
starting up 1 shared server(s) ...
ORACLE_BASE from environment = /u01/app/oracle
Wed Nov 06 04:02:44 2013
ALTER DATABASE   MOUNT
sculkget: failed to lock /u01/app/oracle/product/112030/dbs/lkTESTDB exclusive
sculkget: lock held by PID: 64
ORA-09968: unable to lock file
Linux-x86_64 Error: 11: Resource temporarily unavailable
Additional information: 64
ORA-1102 signalled during: ALTER DATABASE   MOUNT...

Solution:

  • Shutdown the database which is started(it will be in NOMOUNT Mode)
  • Check if any other process is running for that database, if yes kill those processes.
  • Copy the directory containing the datafiles to a different location.
  • Rename the directory to a different name and move the copied directory back to the same name.
  • Now go to $ORACLE_HOME/dbs and delete the file lkTESTDB
  • Start the database


89-oracle@linux01=> sqlplus sys as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Wed Nov 6 06:13:15 2013
Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Enter password: 

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> shutdown immediate 
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> exit

oracle@linux01=> ps -ef|grep testdb
oracle     974  6086  0 00:09 pts/1    00:00:00 grep testdb

oracle@linux01=> cd /u01/oradata
oracle@linux01=> cp -r testdb testdb.1
oracle@linux01=> mv -r testdb testdb.old
oracle@linux01=> mv testdb.1 testdb
oracle@linux01=> cd $ORACLE_HOME/dbs
oracle@linux01=> rm lkTESTDB

oracle@linux01=> sqlplus sys as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Wed Nov 6 04:25:12 2013
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Enter password: 
Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area  680607744 bytes
Fixed Size                  2231472 bytes
Variable Size             507511632 bytes
Database Buffers          163577856 bytes
Redo Buffers                7286784 bytes
Database mounted.
Database opened.
SQL> exit

No comments:

Post a Comment