From Metalink,
In Oracle releases before 7.3.3 on Unix it was possible for two instances to
mount the same database using different values for ORACLE_SID when not
running in Parallel Server mode. This could cause database corruption
as two independent instances could then access the same database files
with no synchronisation between them. This problem is described in
[BUG:272030].
Platforms / Versions affected
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This problem has never existed on VMS as a mount lock is always used.
This problem still exists on Windows NT at the time of writing.
It is possible that the problem still exists on some Unix platforms due
to [BUG:690938] (Eg: The LK
7.3.3 - 8.0.X )
What is the LK<dbname> file ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To prevent this from occurring on Unix systems a 'mount lock' file was
introduced in Oracle 7.3.3. This zero length lock file is created in the
'$ORACLE_HOME/dbs' directory with the name 'lk<DBNAME>'.
Now when Oracle tries to MOUNT a database:
1. The DB_NAME parameter is used to complete the filename.
Eg: If DB_NAME=V803 then the filename is "$ORACLE_HOME/dbs/lkV803"
2. If this file does not exist it is created.
If the file does exist it is opened.
3. The file is locked using an exclusive Unix file lock.
If any of these steps fail then the MOUNT operation is not allowed and
and ORA 1102 ("cannot mount database in EXCLUSIVE mode") is signaled.
Implications if Upgrading from Earlier Releases
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Prior to this change it was possible to have two databases running from
the same $ORACLE_HOME that had the same DB_NAME but different $ORACLE_SIDs.
This is no longer allowed - Oracle recommends that in such cases one of
the databases has its database name changed. This can be achieved using the
CREATE CONTROLFILE command as described in
databases have different names they will each use their own 'lkDB_NAME' file.
Additional Notes
~~~~~~~~~~~~~~~~
1. Never remove the 'lkDB_NAME' file unless you are certain there is
no local instance using the database.
2. The 'lkDB_NAME' file may exist even when the database is shut down so
its presence cannot be used as an indication that the database is
in use.
3. Some notes may erroneously report the file name to be 'lk<SID>' rather
than 'lk<DB_NAME>'. In many cases the SID and DB_NAME are the same but
it is important to note that the filename uses the DB_NAME and NOT
the SID.
4. Possible errors from the locking code include:
ORA-9992 scumnt: failed to open <FILENAME>
ORA-9993 scumnt: failed to lock <FILENAME>
ORA-1102 cannot mount database in EXCLUSIVE mode
-----Original Message-----
From: Burton, Laura L. [mailto:[EMAIL PROTECTED]]
Sent: 24 May 2001 15:57
To: Multiple recipients of list ORACLE-L
Subject: RE: Another Database DownNo, I did not know about this. Could you explain or tell me where I can find info on this?Laura-----Original Message-----
From: Robertson Lee - lerobe [mailto:[EMAIL PROTECTED]]
Sent: Thursday, May 24, 2001 3:51 AM
To: Multiple recipients of list ORACLE-L
Subject: RE: Another Database DownHave you tried removing/moving the lk<ORACLE_SID> file in the $ORACLE_HOME/dbs directory ??Lee
The information contained in this communication is
confidential, is intended only for the use of the recipient
named above, and may be legally privileged. If the reader
of this message is not the intended recipient, you are
hereby notified that any dissemination, distribution or
copying of this communication is strictly prohibited.
If you have received this communication in error, please
re-send this communication to the sender and delete the
original message or any copy of it from your computer
system.