今天遇到一个奇怪问题,发现srvctl和crs_start命令无法启动Oracle RAC实例,但用sqlplus却可以正常启动。最终发现原因是在OCR中数据库的状态变成了disable,将此状态更改为enable后恢复正常。

以下是一个模拟示例:

oracle@his00mlcdrc02:~ $> crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE his0...rc01
ora....01.lsnr application ONLINE ONLINE his0...rc01
ora....c01.gsd application ONLINE ONLINE his0...rc01
ora....c01.ons application ONLINE ONLINE his0...rc01
ora....c01.vip application ONLINE ONLINE his0...rc01
ora....SM2.asm application ONLINE ONLINE his0...rc02
ora....02.lsnr application ONLINE ONLINE his0...rc02
ora....c02.gsd application ONLINE ONLINE his0...rc02
ora....c02.ons application ONLINE ONLINE his0...rc02
ora....c02.vip application ONLINE ONLINE his0...rc02
ora....rcdb.db application OFFLINE OFFLINE
ora....b1.inst application OFFLINE OFFLINE
ora....b2.inst application OFFLINE OFFLINE oracle@his00mlcdrc02:~ $> ps -ef | grep ora_
oracle 23001 16923 0 16:31:27 pts/1 0:00 grep ora_ oracle@his00mlcdrc02:~ $> crs_start ora.hisdrcdb.hisdrcdb2.inst
Attempting to start `ora.hisdrcdb.hisdrcdb2.inst` on member `his00mlcdrc02`
Start of `ora.hisdrcdb.hisdrcdb2.inst` on member `his00mlcdrc02` failed. (在节点his00mlcdrc02上启动失败)
his00mlcdrc01 : CRS-1019: Resource ora.hisdrcdb.hisdrcdb2.inst (application) cannot run on his00mlcdrc01
(对于象VIP这类可以failover到其它节点的资源,如果在原节点上启动不成功,则Oracle会试图在其它节点上启动。而实例是不能failover的资源,此处提示实例2不能在节点1上启动)
CRS-0215: Could not start resource 'ora.hisdrcdb.hisdrcdb2.inst'.
oracle@his00mlcdrc02:~ $> crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE his0...rc01
ora....01.lsnr application ONLINE ONLINE his0...rc01
ora....c01.gsd application ONLINE ONLINE his0...rc01
ora....c01.ons application ONLINE ONLINE his0...rc01
ora....c01.vip application ONLINE ONLINE his0...rc01
ora....SM2.asm application ONLINE ONLINE his0...rc02
ora....02.lsnr application ONLINE ONLINE his0...rc02
ora....c02.gsd application ONLINE ONLINE his0...rc02
ora....c02.ons application ONLINE ONLINE his0...rc02
ora....c02.vip application ONLINE ONLINE his0...rc02
ora....rcdb.db application OFFLINE OFFLINE
ora....b1.inst application OFFLINE OFFLINE
ora....b2.inst application ONLINE OFFLINE
此时可以看到实例2启动并未成功。 oracle@his00mlcdrc02:~ $> srvctl start instance -d hisdrcdb -i hisdrcdb2
用srvctl命令尝试启动实例2,命令很快就返回了。 oracle@his00mlcdrc02:~ $> crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE his0...rc01
ora....01.lsnr application ONLINE ONLINE his0...rc01
ora....c01.gsd application ONLINE ONLINE his0...rc01
ora....c01.ons application ONLINE ONLINE his0...rc01
ora....c01.vip application ONLINE ONLINE his0...rc01
ora....SM2.asm application ONLINE ONLINE his0...rc02
ora....02.lsnr application ONLINE ONLINE his0...rc02
ora....c02.gsd application ONLINE ONLINE his0...rc02
ora....c02.ons application ONLINE ONLINE his0...rc02
ora....c02.vip application ONLINE ONLINE his0...rc02
ora....rcdb.db application OFFLINE OFFLINE
ora....b1.inst application OFFLINE OFFLINE
ora....b2.inst application ONLINE OFFLINE
srvctl命令启动也不成功。 oracle@his00mlcdrc02:~ $> sqlplus "/as sysdba" SQL*Plus: Release 10.2.0.4.0 - Production on Sat Oct 9 16:37:38 2010 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to an idle instance. SQL> startup;
ORACLE instance started. Total System Global Area 1610612736 bytes
Fixed Size 2139192 bytes
Variable Size 399465416 bytes
Database Buffers 1174405120 bytes
Redo Buffers 34603008 bytes
Database mounted.
Database opened.
SQL> show parameter instance_name NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
instance_name string hisdrcdb2
SQL> select open_mode from v$database; OPEN_MODE
--------------------
READ WRITE
用sqlplus启动实例成功了。 SQL> host crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE his0...rc01
ora....01.lsnr application ONLINE ONLINE his0...rc01
ora....c01.gsd application ONLINE ONLINE his0...rc01
ora....c01.ons application ONLINE ONLINE his0...rc01
ora....c01.vip application ONLINE ONLINE his0...rc01
ora....SM2.asm application ONLINE ONLINE his0...rc02
ora....02.lsnr application ONLINE ONLINE his0...rc02
ora....c02.gsd application ONLINE ONLINE his0...rc02
ora....c02.ons application ONLINE ONLINE his0...rc02
ora....c02.vip application ONLINE ONLINE his0...rc02
ora....rcdb.db application OFFLINE OFFLINE
ora....b1.inst application OFFLINE OFFLINE
ora....b2.inst application ONLINE OFFLINE
但crs_stat显示的状态仍然是OFFLINE. 先把实例2停止。
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options oracle@his00mlcdrc02:~ $> ocrdump 查看OCRDUMPFILE ......
[DATABASE.DATABASES.hisdrcdb.ENABLED]
ORATEXT : false
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_WRITE, OTHER_PERMISSION : PROCR_READ, USER_NAME : oracle, GROUP_NAME : dba} [DATABASE.DATABASES.hisdrcdb.POLICY]
ORATEXT : MANUAL
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_WRITE, OTHER_PERMISSION : PROCR_READ, USER_NAME : oracle, GROUP_NAME : dba}
......
OCR中显示数据库DATABASE.DATABASES.hisdrcdb.ENABLED属性为false,DATABASE.DATABASES.hisdrcdb.POLICY为manual,而在别的数据库上可以看到这两个属性应为true和automatic. oracle@his00mlcdrc02:~ $> srvctl status database -d hisdrcdb -f
Instance hisdrcdb1 is disabled
Instance hisdrcdb1 is not running on node his00mlcdrc01
Instance hisdrcdb2 is disabled
Instance hisdrcdb2 is not running on node his00mlcdrc02
srvctl状态表明数据库被disable了。 oracle@his00mlcdrc02:~ $> srvctl enable database -d hisdrcdb
oracle@his00mlcdrc02:~ $> srvctl status database -d hisdrcdb -f
Instance hisdrcdb1 is not running on node his00mlcdrc01
Instance hisdrcdb2 is not running on node his00mlcdrc02
用srvctl命令enable database oracle@his00mlcdrc02:~ $> ocrdump ocr1
查看ocr1:
......
[DATABASE.DATABASES.hisdrcdb.ENABLED]
ORATEXT : true
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_WRITE, OTHER_PERMISSION : PROCR_READ, USER_NAME : oracle, GROUP_NAME : dba} [DATABASE.DATABASES.hisdrcdb.POLICY]
ORATEXT : AUTOMATIC
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_WRITE, OTHER_PERMISSION : PROCR_READ, USER_NAME : oracle, GROUP_NAME : dba}
......
此时这两个属性恢复为true和automatic. oracle@his00mlcdrc02:~ $> crs_start ora.hisdrcdb.hisdrcdb1.inst
Attempting to start `ora.hisdrcdb.hisdrcdb1.inst` on member `his00mlcdrc01`
Start of `ora.hisdrcdb.hisdrcdb1.inst` on member `his00mlcdrc01` succeeded.
oracle@his00mlcdrc02:~ $>
oracle@his00mlcdrc02:~ $> crs_start ora.hisdrcdb.hisdrcdb2.inst
Attempting to start `ora.hisdrcdb.hisdrcdb2.inst` on member `his00mlcdrc02`
Start of `ora.hisdrcdb.hisdrcdb2.inst` on member `his00mlcdrc02` succeeded.
oracle@his00mlcdrc02:~ $> crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE his0...rc01
ora....01.lsnr application ONLINE ONLINE his0...rc01
ora....c01.gsd application ONLINE ONLINE his0...rc01
ora....c01.ons application ONLINE ONLINE his0...rc01
ora....c01.vip application ONLINE ONLINE his0...rc01
ora....SM2.asm application ONLINE ONLINE his0...rc02
ora....02.lsnr application ONLINE ONLINE his0...rc02
ora....c02.gsd application ONLINE ONLINE his0...rc02
ora....c02.ons application ONLINE ONLINE his0...rc02
ora....c02.vip application ONLINE ONLINE his0...rc02
ora....rcdb.db application ONLINE ONLINE his0...rc02
ora....b1.inst application ONLINE ONLINE his0...rc01
ora....b2.inst application ONLINE ONLINE his0...rc02
再次用crs_start命令则能够正常启动实例。 附:srvctl disable disables target, meaning CRS will not consider it for automatic startup, failover, or restart. This option is useful to ensure an object that is down for maintenance is not accidentally automatically restarted. srvctl enable reenables the specified object.

srvctl和crs_start命令无法启动oracle RAC实例, 但sqlplus可以启动的更多相关文章

  1. 查询oracle RAC实例名称等信息

    select * from gv$instance;

  2. 由于OCR文件损坏造成Oracle RAC不能启动的现象和处理方法

    v$cluster_interconnects 集群节点间通信使用的IP地址 错误信息 使用了公网进行连接 SQL> select * from v$cluster_interconnects; ...

  3. oracle_windows下命令启动oracle监听和服务

    1.检查监听器状态 C:\Users\Administrator>lsnrctl status 2.启动监听程序 C:\Users\Administrator>lsnrctl start ...

  4. linux 下 启动oracle

    [root@csyang ~]# su - oracle #首先su到oracle用户 [oracle@csyang ~]$ sqlplus sys/passwd as sysdba #使用sys用户 ...

  5. Linux下启动Oracle服务和监听程序步骤

    Linux下启动Oracle服务和监听程序启动和关闭步骤整理如下: 1.安装oracle: 2.创建oracle系统用户: 3./home/oracle下面的.bash_profile添加几个环境变量 ...

  6. 数据库访问的弹性化---WebLogic和Oracle RAC的整合:Active GridLink

        1.  什么是Active GridLink Data Source 从Oracle WebLogic Server 10.3.4版本开始引进了一种单数据源实现来支持Oracle RAC集群. ...

  7. 【Oracle】CentOS7/CentOS8命令行重启Oracle 11G R2

    写在前面 按照读者朋友的要求写了一篇<[Oracle]CentOS7/CentOS8命令行安装Oracle 11G R2>,由于读者完全是按照我的安装方式安装的Oracle数据库,也是将O ...

  8. 启动Oracle 12c数据库实例

    启动Oracle 12c数据库实例 启动Oracle数据库实例,主要分为两步:第一步,启动监听:第二步,启动数据库实例. 1. 切换到oracle用户- su oracle- cd - source ...

  9. oracle数据库实例,数据库的理解

    转自http://www.cnblogs.com/advocate/archive/2010/08/20/1804066.html 加深一下理解 数据库就是一个相片底片 实例就是相纸 一个底片可以冲多 ...

随机推荐

  1. 如何批量更改linux文件的内容

    在工作当中,我们往往需要修改某个文件夹下面所有文件的内容,例如把里面的日期统一替换成新的日期,或者把某一串字符替换成另外一串字符,这时我们就可以使用sed命令: sed -i "s/olds ...

  2. react: navigator

    1.page js import React from "react"; import {Link} from "react-router-dom"; impo ...

  3. 原创:Angular新手容易碰到的坑,随时更新,欢迎订阅

    在Angular群里回答新手问题一段时间了,有一些Angular方面的坑留在这里备查,希望能对各位有所帮助.这个文章将来会随时更新,不会单独开新章,欢迎各位订阅. Q1. <div ng-inc ...

  4. struts2逻辑视图类型汇总与解释(转)

    在struts2框架中,当action处理完之后,就应该向用户返回结果信息,该任务被分为两部分:结果类型和结果本身. 结果类型提供了返回给用户信息类型的实现细节.结果类型通常在Struts2中就已预定 ...

  5. GCC参数使用

    gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言, ...

  6. 深入理解java虚拟机-第四章

    第4章 虚拟机性能监按与故障处理工具 jps 虚拟机进程状况工具 jstat 虚拟机统计信息监视工具 JVM Statistics Monitoring Tool jstat [ option vmi ...

  7. 【占位】HihoCoder 1160 : 攻城略地(并查集好题)

    攻城略地 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 A.B两国间发生战争了,B国要在最短时间内对A国发动攻击.已知A国共有n个城市(城市编号1, 2, …, n),城 ...

  8. opencv 学习笔记集锦

    整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的.如果有好的资源,也欢迎介绍和分享. 1:OpenCV学习笔记 作者:CSDN数量:55篇博文网址: ...

  9. 剑指offer-第四章解决面试题的思路(包含min函数的栈)

    题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数,在该栈中,调用min,push及pop的时间复杂度都是O(1) 思路:定义两个栈分别为dataStack和minStack ...

  10. WCF日志跟踪SvcTraceViewer.exe

    参考: https://msdn.microsoft.com/zh-cn/library/ms732023.aspx https://msdn.microsoft.com/zh-cn/library/ ...