今天遇到一个奇怪问题,发现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. 行内元素对齐:display:inline-block;

    行内元素对齐:display:inline-block; 今天见到一个一行元素水平排列,但是对不齐啊,如图: 代码: div{ border: 1px solid red; } .wrap > ...

  2. mooseFS学习篇

    官方网站:http://www.moosefs.org/ About MooseFS MooseFS is a fault tolerant, network distributed file sys ...

  3. 音悦台mv视频下载

    需要获取的页面: 参考了此处,做了修改,代码如下: #coding:utf-8 import urllib2 import urllib import re import sys import os ...

  4. 通过使用scrapy爬取某学校全网

    通过遍历全网url 实现爬取全网内容 忽略“.doc"等文件网页暂不处理,只爬取整个页面,不做清洗 spider.py # -*- coding: utf-8 -*- import scra ...

  5. opencv:基本图形绘制

    可以使用opencv绘制 直线.圆.方形.椭圆等基本图形. 示例代码: #include <opencv.hpp> using namespace cv; int main() { // ...

  6. CSS3 Media Query 响应式媒体查询

    在CSS中,有一个极其实用的功能:@media 响应式布局.具体来说,就是可以根据客户端的介质和屏幕大小,提供不同的样式表或者只展示样式表中的一部分.通过响应式布局,可以达到只使用单一文件提供多平台的 ...

  7. 《Drools7.0.0.Final规则引擎教程》第3章 3.2 KIE API解析

    3.2.4 KieServices 该接口提供了很多方法,可以通过这些方法访问KIE关于构建和运行的相关对象,比如说可以获取KieContainer,利用KieContainer来访问KBase和KS ...

  8. C++函数模版实现

    若一个程序的功能是对某种特定的数据类型进行处理,则将所处理的数据类型说明为参数,那么就可以把这个程序改写成为模版,模版可以让程序对任何其他数据类型进行同样方式的处理. 本节主要是说一下C++的函数模版 ...

  9. [分享]Google 全球 IP 地址库[Google Global Cache IPs]

    Google 全球 IP 地址库 IP 地址来源:http://www.kookle.co.nr,共计4351个. Bulgaria 93.123.23.1 93.123.23.2 93.123.23 ...

  10. rem第一天

    Rem为单位 CSS3的出现,他同时引进了一些新的单位,包括我们今天所说的rem.在W3C官网上是这样描述rem的——“font size of the root element” .下面我们就一起来 ...