网站首页 > 技术文章 正文
概述
今天一台测试数据库出现故障,无法正常启动。
报错显示:ORA-01102: cannot mount database in EXCLUSIVE mode,截图如下:
思路:
1、在HA系统中,已经有其他节点启动了实例,将双机共享的资源(如磁盘阵列上的裸设备)占用了;
2、说明Oracle被异常关闭时,有资源没有被释放,一般有以下几种可能,
1) Oracle的共享内存段或信号量没有被释放;
2) Oracle的后台进程(如SMON、PMON、DBWn等)没有被关闭;
3) 用于锁内存的文件lk<sid>和sgadef<sid>.dbf文件没有被删除。
当发生1102错误时,可以按照以下流程检查、排错:
如果是HA系统,检查其他节点是否已经启动实例检查Oracle进程是否存在,如果存在则杀掉进程检查信号量是否存在,如果存在,则清除信号量检查共享内存段是否存在,如果存在,则清除共享内存段检查锁内存文件lk<sid>和sgadef<sid>.dbf是否存在,如果存在,则删除。
Metalink上面的解决方法如下:
解决过程:
1、查$ORACLE_HOME/dbs目录:
$ cd $ORACLE_HOME/dbs $ ls sgadef* sgadef* not found $ ls lk* /opt/oracle/product/ 10.2.0/db_1/dbs/lkSIMPLY lkSIMPLY
果然,lk<sid>文件没有被删除。将它删除掉
$ rm lk*
2、查看共享内存段
[oracle@WMDB:/u01/app/oracle/product/11.2.0/db_1/dbs]$ipcs -map ------ Message Queues PIDs -------- msqid owner lspid lrpid ------ Shared Memory Creator/Last-op PIDs -------- shmid owner cpid lpid 3375104 oracle 24398 25244 3407873 oracle 24398 25244 3440642 oracle 24398 25244 3473411 oracle 24398 25244
3、根据ID号清除共享内存段
[oracle@WMDB:/u01/app/oracle/product/11.2.0/db_1/dbs]$ipcrm -m 3375104 [oracle@WMDB:/u01/app/oracle/product/11.2.0/db_1/dbs]$ipcrm -m 3407873 [oracle@WMDB:/u01/app/oracle/product/11.2.0/db_1/dbs]$ipcrm -m 3440642 [oracle@WMDB:/u01/app/oracle/product/11.2.0/db_1/dbs]$ipcrm -m 3473411 [oracle@WMDB:/u01/app/oracle/product/11.2.0/db_1/dbs]$ipcs -map ------ Message Queues PIDs -------- msqid owner lspid lrpid ------ Shared Memory Creator/Last-op PIDs -------- shmid owner cpid lpid
4、查看信号量
# ipcs -s
5、清除oracle的信号量
# ipcrm -s 360448
再查询共享内存段也没问题
# ipcs -m
这里如果是Oracle进程没有关闭,则执行以下命令
$kill -9 <PID>
执行后可以正常启动数据库,问题解决。
这里主要对数据库的故障做个简单记录,大家以后碰到类似问题按这个流程处理就可以了。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~
猜你喜欢
- 2024-10-18 分析 Oracle 死锁的检测查询及处理方法
- 2024-10-18 oracle常见问题处理 oracle数据库问题解决方案和故障排除手册
- 2024-10-18 如何规范化Oracle数据库审计启停操作流程?
- 2024-10-18 Oracle 逻辑结构篇 之 Oracle 控制文件管理(二)
- 2024-10-18 Windows上Oracle启动关闭慢,有时访问慢问题排查
- 2024-10-18 技术分享 LINUX卸载oracle linux怎么卸载oracle
- 2024-10-18 【Oracle】“锁”一般解决步骤(故障排查操作说明)
- 2024-10-18 原 oracle执行update一直处于执行中,跟卡住一样
- 2024-10-18 PostgreSQL关闭数据库服务的三种模式
- 2024-10-18 Oracle 推出世界第一个自治操作系统
你 发表评论:
欢迎- 590℃几个Oracle空值处理函数 oracle处理null值的函数
- 583℃Oracle分析函数之Lag和Lead()使用
- 570℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 568℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 564℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 556℃【数据统计分析】详解Oracle分组函数之CUBE
- 541℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 536℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)