ORA-01102 的解决办法

服务器启动后(备注:GI已经启动实例和监听),遇到ora-01102错误。        
[oracle@odd-PROD1 ~]$ /u01/app/11.2.0/grid/bin/crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS      
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       odd                                         
ora.ons
               OFFLINE OFFLINE      odd                                         
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        OFFLINE OFFLINE                                                  
ora.diskmon
      1        OFFLINE OFFLINE                                                  
ora.evmd
      1        ONLINE  ONLINE       odd                                         
ora.prod1.db
      1        ONLINE  ONLINE       odd                      Open 


[oracle@odd-PROD1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Sun Oct 16 00:37:50 2016
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> select status from v$instance;
select status from v$instance
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
SQL> startup
ORACLE instance started.
Total System Global Area  472887296 bytes
Fixed Size                  1345716 bytes
Variable Size             339740492 bytes
Database Buffers          125829120 bytes
Redo Buffers                5971968 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode
了解到  ORA-1102 错误原因:
1 在ORACLE_HOME/dbs/存在 "sgadef.dbf" 文件或者lk 文件。这两个文件是用来用于锁内存的。
2 oracle的 pmon, smon, lgwr and dbwr等进程未正常关闭。
3 数据库关闭后,共享内存或者信号量依然被占用。
lk说明DATABASE 已经是MOUNT状态了,不用再次MOUNT.当 DATABASE 被UNMOUNT 后会被自动删除,如果DATABASE没有MOUNT,却依然存在这个问题,只有手工将其删除。
具体解决ORA-01102的步骤:

--------------------
使用fuser -u lkORCL 查看使用 lkORCL 文件的进程和用户。-u 为进程号后圆括号中的本地进程提供登录名。
[oracle@odd-PROD1 dbs]$ /sbin/fuser -u lkPROD1
lkPROD1:              4288(oracle)  4290(oracle)  4296(oracle)  4300(oracle)  4304(oracle)  4306(oracle)  4308(oracle)  4310(oracle)  4312(oracle)  4314(oracle)  4316(oracle)  4318(oracle)
使用 fuser -k  lkORCL  杀死这些正在访问lkORCL的进程   -k 杀死这些正在访问这些文件的进程。
[oracle@odd-PROD1 dbs]$ /sbin/fuser -k lkPROD1
lkPROD1:              4288  4290  4296  4300  4304  4306  4308  4310  4312  4314  4316  4318

确认:相关进程全被终止。
[oracle@odd-PROD1 dbs]$ /sbin/fuser -u lkORCL
重新启动:
[oracle@odd-PROD1 dbs]$ sqlplus / as sysdba      
SQL*Plus: Release 11.2.0.3.0 Production on Fri Apr 15 16:30:16 2011
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1.7103E+10 bytes
Fixed Size                  2243608 bytes
Variable Size            8455717864 bytes
Database Buffers         8623489024 bytes
Redo Buffers               21712896 bytes
Database mounted.
Database opened.

 

文章参考:http://blog.itpub.net/22664653/viewspace-692638/

                   http://www.cnblogs.com/fengqingtao/archive/2011/09/28/2194691.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值