srvctl和crs_start命令无法启动oracle RAC实例, 但sqlplus可以启动
今天遇到一个奇怪问题,发现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可以启动的更多相关文章
- 查询oracle RAC实例名称等信息
select * from gv$instance;
- 由于OCR文件损坏造成Oracle RAC不能启动的现象和处理方法
v$cluster_interconnects 集群节点间通信使用的IP地址 错误信息 使用了公网进行连接 SQL> select * from v$cluster_interconnects; ...
- oracle_windows下命令启动oracle监听和服务
1.检查监听器状态 C:\Users\Administrator>lsnrctl status 2.启动监听程序 C:\Users\Administrator>lsnrctl start ...
- linux 下 启动oracle
[root@csyang ~]# su - oracle #首先su到oracle用户 [oracle@csyang ~]$ sqlplus sys/passwd as sysdba #使用sys用户 ...
- Linux下启动Oracle服务和监听程序步骤
Linux下启动Oracle服务和监听程序启动和关闭步骤整理如下: 1.安装oracle: 2.创建oracle系统用户: 3./home/oracle下面的.bash_profile添加几个环境变量 ...
- 数据库访问的弹性化---WebLogic和Oracle RAC的整合:Active GridLink
1. 什么是Active GridLink Data Source 从Oracle WebLogic Server 10.3.4版本开始引进了一种单数据源实现来支持Oracle RAC集群. ...
- 【Oracle】CentOS7/CentOS8命令行重启Oracle 11G R2
写在前面 按照读者朋友的要求写了一篇<[Oracle]CentOS7/CentOS8命令行安装Oracle 11G R2>,由于读者完全是按照我的安装方式安装的Oracle数据库,也是将O ...
- 启动Oracle 12c数据库实例
启动Oracle 12c数据库实例 启动Oracle数据库实例,主要分为两步:第一步,启动监听:第二步,启动数据库实例. 1. 切换到oracle用户- su oracle- cd - source ...
- oracle数据库实例,数据库的理解
转自http://www.cnblogs.com/advocate/archive/2010/08/20/1804066.html 加深一下理解 数据库就是一个相片底片 实例就是相纸 一个底片可以冲多 ...
随机推荐
- 行内元素对齐:display:inline-block;
行内元素对齐:display:inline-block; 今天见到一个一行元素水平排列,但是对不齐啊,如图: 代码: div{ border: 1px solid red; } .wrap > ...
- 【spark】分区
RDD是弹性分布式数据集,通常RDD很大,会被分成多个分区,保存在不同节点上. 那么分区有什么好处呢? 分区能减少节点之间的通信开销,正确的分区能大大加快程序的执行速度. 我们看个例子 首先我们要了解 ...
- MongoDB 高可用集群架构简介
在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. 转载自严澜的博文——<如何搭建高效的 ...
- H264提供了哪些帧内预测?
H.264/AVC 提供了四种帧内预测方式:4x4 亮度块的帧内预测(Intra_4x4).16x16 亮度块的帧内预测(Intra_16x16).8x8 色度块的帧内预测(Intra_chroma) ...
- poj1655(dfs,树形dp,树的重心)
这是找树的重心的经典题目. 树的重心有下面几条常见性质: 定义1:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心.定义2:以这个点为根,那么所有的子树(不算整个树自身)的大 ...
- centOS 7 tomcat nginx 验证码乱码
将服务部署在centOS 7上,配置完tomcat和nginx之后,启动服务后,发现验证码这样了~~~ 一开始是以为nginx的原因,但是在Ubuntu系统相同操作发现没有问题,后发现,系统的字体库中 ...
- 原生js面向对象写法
Mouse就是一个类,有自己的成员变量和成员方法,成员方法一定加上prototype,避免js原型的坑. var Mouse = function(id) { this.id = id; this.n ...
- 在windows环境初步了解tuxedo
最近换了一份工作,新公司使用tuxedo来简化应用的开发,而我参加工作这么多年,虽说略懂c++的开发,但是也没有用过tuxedo这种古老的东西.既然没有接触过,那就学学吧.先描述一下道路的曲折性吧. ...
- C++11新特性之线程操作
C++11之前没有对并发编程提供语言级别的支持,这使得我们在编写可移植的并发程序时,存在诸多的不便.现在C++11增加了线程以及线程相关的类,很方便地支持了并发编程,使得编写的多线程程序的可移植性得到 ...
- Python之MySQLdb
MySQLdb是用于Python链接Mysql数据库的接口,它实现了Python数据库API规范V2.0,基于MySql C API上建立的. 1. MySQLdb安装 (1)安装Mysql,参考上篇 ...