今天在STARTUP一数据库时,发生如下错误:
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup
oracle instance started.
Total System Global Area 276824064 bytes
Fixed Size 778736 bytes
Variable Size 137371152 bytes
Database Buffers 138412032 bytes
Redo Buffers 262144 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode
SQL> shutdown immediate
ORA-01507: database not mounted
oracle instance shut down.
GOOGLE一下,发现是lk<SID>文件造成的,该文件位于ORALCE_HOME下的dbs目录下,马上检查该文件:
[root@qa- oracle dbs]# fuser -u lkNDMSQA
lkNDMSQA: 6666( oracle ) 6668( oracle ) 6670( oracle ) 6672( oracle ) 6674( oracle ) 6676( oracle ) 6678( oracle ) 6680( oracle ) 6690( oracle ) 6692( oracle ) 6694( oracle ) 6696( oracle ) 6737( oracle ) 6830( oracle )
果然该文件没释放,用fuser命令kill掉:
[root@qa- oracle dbs]# fuser -k lkNDMSQA
lkNDMSQA: 6666 6668 6670 6672 6674 6676 6678 6680 6690 6692 6694 6696 6737 6830
[root@qa- oracle dbs]# fuser -u lkNDMSQA
然后:
SQL> startup
oracle instance started.
Total System Global Area 276824064 bytes
Fixed Size 778736 bytes
Variable Size 137371152 bytes
Database Buffers 138412032 bytes
Redo Buffers 262144 bytes
Database mounted.
Database opened.
SQL>
本文介绍了一种常见的Oracle数据库启动错误ORA-01102及其解决方法。通过使用fuser命令来释放被占用的lk文件,成功解决了数据库无法启动的问题。
853

被折叠的 条评论
为什么被折叠?



