Recently seen this error while starting the database
-- alert.log CJQ0 started with pid=8, OS id=21126 MMON started with pid=11, OS id=21130 MMNL started with pid=12, OS id=21134 Tue Aug 9 18:03:45 2011 ALTER DATABASE MOUNT Tue Aug 9 18:03:45 2011 sculkget: failed to lock /u01/app/oracle/product/10.2.0/dbs/lkdevdb exclusive sculkget: lock held by PID: 4925 Tue Aug 9 18:03:45 2011 ORA-09968: unable to lock file Linux-x86_64 Error: 11: Resource temporarily unavailable Additional information: 4925 Tue Aug 9 18:03:45 2011 ORA-1102 signalled during: ALTER DATABASE MOUNT... Tue Aug 9 18:04:06 2011 alter database open Tue Aug 9 18:04:06 2011 ORA-1507 signalled during: alter database open... Tue Aug 9 18:05:56 2011 Shutting down instance (abort)
This error is caused by presence of the lk<sid> file in $ORACLE_HOME/dbs. Normally left due to instance crash i.e not clean shutdown.
Well there are couple of solutions to resolve this problem
1. We can remove or rename the file and then try to start the instance.
2. Sometimes, even after the file is deleted, some shadow processes may have open file handle on this file. In this case, we’ll have to kill the process(es) specific to this instance.
NOTE: The lk<sid> file is an instance lock file. Oracle uses this mechanism to prevent staring of second instance.