ORACLE报错(5)ORA-01102: cannot mount database in EXCLUSIVE mode

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 $ORALCE_HOME/dbas/lkSID

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 lkSID
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>

数据库成功OPEN.

关于该错误更详细的介绍如下:原文链接:http://www.hellodba.com/cases/case-unexception_down.htm

数据库异常关闭后无法启动问题处理一例

作者: fuyuncat

来源: www.HelloDBA.com

某系统突然掉电,系统启动后发现Oracle无法启动。启动时报如下错误:

ORA-01102 cannot mount database in EXCLUSIVE mode
出现1102错误可能有以下几种可能:

一、在HA系统中,已经有其他节点启动了实例,将双机共享的资源(如磁盘阵列上的裸设备)占用了;

二、说明Oracle被异常关闭时,有资源没有被释放,一般有以下几种可能,

1、 Oracle的共享内存段或信号量没有被释放;

2、 Oracle的后台进程(如SMON、PMON、DBWn等)没有被关闭;

3、 用于锁内存的文件lk<sid>和sgadef<sid>.dbf文件没有被删除。

首先,虽然我们的系统是HA系统,但是备节点的实例始终处在关闭状态,这点通过在备节点上查数据库状态可以证实。

其次、是因系统掉电引起数据库宕机的,系统在接电后被重启,因此我们排除了第二种可能种的1、2点。最可疑的就是第3点了。

查$ORACLE_HOME/dbs目录:

$ cd $ORACLE_HOME/dbs
$ ls sgadef*
sgadef* not found
$ ls lk*
lkORA92
果然,lk<sid>文件没有被删除。将它删除掉

$ rm lk*
再启动数据库,成功。

如果怀疑是共享内存没有被释放,可以用以下命令查看:

$ipcs -mop
IPC status from /dev/kmem as of Thu Jul 6 14:41:43 2006
T ID KEY MODE OWNER GROUP NATTCH CPID LPID
Shared Memory:
m 0 0×411c29d6 –rw-rw-rw- root root 0 899 899
m 1 0×4e0c0002 –rw-rw-rw- root root 2 899 901
m 2 0×4120007a –rw-rw-rw- root root 2 899 901
m 458755 0×0c6629c9 –rw-r—– root sys 2 9113 17065
m 4 0×06347849 –rw-rw-rw- root root 1 1661 9150
m 65541 0xffffffff –rw-r–r– root root 0 1659 1659
m 524294 0×5e100011 –rw——- root root 1 1811 1811
m 851975 0×5fe48aa4 –rw-r—– oracle oinstall 66 2017 25076
然后它ID号清除共享内存段:

$ipcrm –m 851975
对于信号量,可以用以下命令查看:

$ ipcs -sop
IPC status from /dev/kmem as of Thu Jul 6 14:44:16 2006
T ID KEY MODE OWNER GROUP
Semaphores:
s 0 0×4f1c0139 –ra——- root root
… …
s 14 0×6c200ad8 –ra-ra-ra- root root
s 15 0×6d200ad8 –ra-ra-ra- root root
s 16 0×6f200ad8 –ra-ra-ra- root root
s 17 0xffffffff –ra-r–r– root root
s 18 0×410c05c7 –ra-ra-ra- root root
s 19 0×00446f6e –ra-r–r– root root
s 20 0×00446f6d –ra-r–r– root root
s 21 0×00000001 –ra-ra-ra- root root
s 45078 0×67e72b58 –ra-r—– oracle oinstall
根据信号量ID,用以下命令清除信号量:

$ipcrm -s 45078
如果是Oracle进程没有关闭,用以下命令查出存在的oracle进程:

$ ps -ef|grep ora
oracle 29976 1 0 Jun 22 ? 0:52 ora_dbw0_ora92
oracle 29978 1 0 Jun 22 ? 0:51 ora_dbw1_ora92
oracle 5128 1 0 Jul 5 ? 0:00 oracleora92 (LOCAL=NO)
… …
然后用kill -9命令杀掉进程

$kill -9 <PID>
总结:

当发生1102错误时,可以按照以下流程检查、排错:

1.如果是HA系统,检查其他节点是否已经启动实例;
2.检查Oracle进程是否存在,如果存在则杀掉进程;
3.检查信号量是否存在,如果存在,则清除信号量;
4.检查共享内存段是否存在,如果存在,则清除共享内存段;
5.检查锁内存文件lk<sid>和sgadef<sid>.dbf是否存在,如果存在,则删除。

转载于:https://blog.51cto.com/wanwentao/435397

ORACLE报错(5)ORA-01102: cannot mount database in EXCLUSIVE mode相关推荐

  1. oracle ora 00283,【案例】Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程

    天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle数据库处理非归档模式,redo文件损坏常规修复无法正常open数据库. 本站文章除注明转载外,均为本站原创: 转载自love wife ...

  2. oracle 增加ora容量_案例:Oracle报错ORA-01144 详解数据文件大小32GB的限制的原因

    天萃荷净 Oracle数据文件大小的限制,运维DBA在向Oracle数据库添加一个32G的数据文件的时候报错ORA-01144,分析原因为数据库针对文件有32G限制 1.添加数据文件报错ORA-011 ...

  3. oracle批量插入报错,[数据库]Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA

    [数据库]Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA 0 2020-08-19 08:00:06 Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA-009 ...

  4. linux ora 01157,案例:Oracle报错ORA-01157 ORA-01110 数据启动报错RMAN恢复数据库思路

    天萃荷净 rman从多份备份中还原操作,运维DBA工程师反映数据库在进行恢复时报错ORA-01157 ORA-01110,分析原因为11号数据文件需要recover 1.数据恢复ORA错误 RMAN& ...

  5. 案例:Oracle报错ASM磁盘组不存在或没有mount

    案例:Oracle报错ASM磁盘组不存在或没有mount 环境:RHEL 6.5 + Oracle Standby RAC 11.2.0.4 我做Standby RAC实验时,在恢复控制文件时,报错无 ...

  6. oracle安装出现2932,【案例】Oracle报错ORA-19815 fast_recovery_area无剩余空间解决办法...

    天萃荷净 运维DBA反映数据库出现宕机,alert日志报错ORA-19815,分析原因为归档日志满导致日志无法归档,提出fast_recovery_area无剩余空间解决办法 一.打开数据库报错ORA ...

  7. oracle01507报错,oracle报错ORA-01507

    Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程 [案例]Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程 转惜纷飞 今天ML的群中女神和travel在纠结 ...

  8. 查询oracle数据库错误修改了,【案例】Oracle报错ora-00600[2662] 修改控制文件scn推进数据库scn...

    天萃荷净 运维DBA反映数据库重启后无法启动,报错ora-00600[2662],分析原因为SCN异常导致,通过修改控制文件scn推进数据库scn 在数据库遇到ora-600[2662],scn不一致 ...

  9. plsql无法连接oracle,报错:ORA-12514

    为了本地测试方便,我在本机安装了oracle,几个月前plsql突然无法连接oracle,报错:ORA-12514,在网上找了各种方法都无法解决,最后只能忍辱卸载oracle重新安装,一切又相安无事. ...

最新文章

  1. 获取 metadata 的完整例子 - 每天5分钟玩转 OpenStack(166)
  2. CVPR 2021 | 自适应激活函数ACON:统一ReLU和Swish的新范式
  3. Sagemaker快速学习
  4. spss三次指数平滑_17 统计学:SPSS基础
  5. java动态代理_Java中的动态代理一
  6. 怎么用计算机弹that girl,抖音使用教程 抖音that girl 歌曲歌词介绍
  7. 计算机网络操作系统课件,计算机网络操作系统课件(张浩军版).ppt
  8. 重庆Uber优步司机奖励政策
  9. altium 快速设置网络_通过加载CAD“快速选择”插件,可以很大的提高绘图效率...
  10. cad快速选择命令快捷键_CAD图层快捷键命令应用讲解
  11. xlsxwriter模块安装linux,XlsxWriter模块常用方法
  12. 关于mysql答辩的问题_答辩常见问题总结.doc
  13. 拉里 埃里森_拉里·埃里森(Larry Ellison)的宝座
  14. matlab之ARMA(p,q)模型
  15. 亚马逊开店如何优化店铺?
  16. mydate97picker
  17. Spring Integration入门
  18. 11.2 NOIP模拟赛 (morning)
  19. 这个必用的开发框架,是多少程序员头秃的存在?
  20. Java Date时间转换

热门文章

  1. oracle adjusting parallel,Oracle 并行相关的初始化参数
  2. VB 详细枚举指定目录、文件夹文件列表
  3. vb与数据库(一)之迟到的耿建玲视频总结
  4. 谁在让字节跳动?张一鸣领衔14大将,106位高管架构首次曝光
  5. 提前11秒,AI让神经科学家预知了你的决定
  6. 清华大学发布10大机器翻译学习必读论文清单 | 资源
  7. 马斯克召集百名员工测试完全自动驾驶,1.3万美元大优惠!先到先得
  8. 人民日报发推欢迎Google重返大陆,FB上长文阐述详细立场
  9. Uber无人车事故又有新内情曝光:为竞争盲目冒进,瘾大技术差
  10. 又是AI+IoT!谷歌试图收购物联网公司Xively