阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

ORA-01102: cannot mount database in EXCLUSIVE mode 错误解决

110次阅读
没有评论

共计 1334 个字符,预计需要花费 4 分钟才能阅读完成。

问题描述:

在 RAC 环境中,想开启归档日志,其中使用

SQL> alter system set cluster_database=false scope=spfile;--> 把集群修改为单实例

修改好后主节点,恢复集群双节点

SQL> alter system set cluster_database=true scope=spfile;--> 把集群修改为双实例

当前数据库主节点已经 open 状态,查询状态是 open

备节点已是 shutdown 状态,启动当前节点时报:

 ORA-01102: cannot mount database in EXCLUSIVE mode
经从网上查阅信息,可能是如下,我把相关解决思路 copy 过来大家可以参考

分析原因:

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

 

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

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

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

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

 

解决思路:

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

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

 

具体做法:

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

其次、是因系统是修改过集群状态的,是否在修改后没有生效,当时就是查询当前集群状态

SQL> show parameter cluster
NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
cluster_database             boolean    fales
cluster_database_instances         integer     2
cluster_interconnects             string

这里可能大概判断出来啥问题影响,可能是当前修改参数后没有生效,需要重新修改生效,就是第一种情况

把数据库重启支 mount 状态

SQL> alter system set cluster_database=true scope=spfile;

把数据库修改成 open 状态,再去尝试备节点是否可以正常启动成功,结果发现启动成功

在修改 RAC 环境参数后最好再确认一下是否修改成功主

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-07/145599.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1334字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中