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 加深一下理解 数据库就是一个相片底片 实例就是相纸 一个底片可以冲多 ...
随机推荐
- Java连接DB2
package com.java.test.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.s ...
- Shiro快速入门
1.什么是Shiro Shiro是Java的一个安全框架, 完成权限控制的任务. 权限控制的基本功能: 认证(让系统知道你是谁); 授权(让系统知道你能做什么)权限控制常用的技术: 过滤器/拦截器, ...
- Oracle Package
(转自:http://blog.csdn.net/bbliutao/article/details/9016947) 一.概述包可将一些有联系的对象放在其内部.任何能在块定义部分出现的对象都可以在包中 ...
- 在SQL Server中快速删除重复记录
在SQL Server中快速删除重复记录 2006-07-17 21:53:15 分类: SQL Server 开发人员的噩梦——删除重复记录 想必每一位开发人员都有过类似的经历,在对数据库进行查询 ...
- windows7自动登录后锁定 & 其他VBS
首先设置自动登录(原已设置登录密码),在开始菜单搜索框输 入 “netplwiz” 按 回车,打开高级用户控制面板,然后取消对“要使用本机,用户需输入用户名和密码(E)”项的勾选,系统弹出窗口要求输入 ...
- OS快捷键
OS X 键盘快捷键 若要使用键盘快捷键或按键组合,您可以同时按修饰键和字符键.例如,同时按下 Command 键(标有 符号的按键)和“c”键会将当前选中的任何内容(文字.图形等)拷贝至夹纸板.这也 ...
- canvas - 柱子效果
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- dojo chart详解
Dojo提供了一套很完善的统计图(Chart)接口,在dojox/charting下面,可以支持很多种类型的. .简介 Dojo统计图提供快速的.简单的接口实现美观的.交互性强的web统计图表的实现. ...
- windows 下后台启动 redis
1. 进入 DOS窗口 2. 在进入Redis的安装目录 3. 输入:redis-server --service-install redis.windows.conf --loglevel verb ...
- bulkcopy实现批量插入与更新
public static void UpdateData<T>(List<T> list, string TabelName) { DataTable dt = new Da ...