某些时候在11gR2 RAC Database的环境下重启服务器之后,使用crsctl工具查看资源的状态,会发现database资源所有实例的TARGET和STATE值都为OFFLINE,数据库实例不能正常的自动启动,尝试执行以下的命令使得所有实例都能自动启动:
[root@rhel1 bin]# ./crsctl stat res -t——————————————————————————–NAME TARGET STATE SERVER STATE_DETAILS ——————————————————————————–Local Resources——————————————————————————–ora.DBFILE1.dg ONLINE ONLINE rhel1 ONLINE ONLINE rhel2 ora.FRA1.dg ONLINE ONLINE rhel1 ONLINE ONLINE rhel2 ora.LISTENER.lsnr ONLINE ONLINE rhel1 ONLINE ONLINE rhel2 ora.LISTENER2.lsnr ONLINE ONLINE rhel1 ONLINE ONLINE rhel2 ora.OCR.dg ONLINE ONLINE rhel1 ONLINE ONLINE rhel2 ora.asm ONLINE ONLINE rhel1 ONLINE ONLINE rhel2 ora.gsd ONLINE ONLINE rhel1 ONLINE ONLINE rhel2 ora.net1.network ONLINE ONLINE rhel1 ONLINE ONLINE rhel2 ora.net2.network ONLINE ONLINE rhel1 ONLINE ONLINE rhel2 ora.ons ONLINE ONLINE rhel1 ONLINE ONLINE rhel2 ora.registry.acfs ONLINE ONLINE rhel1 ONLINE ONLINE rhel2 ——————————————————————————–Cluster Resources——————————————————————————–ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE rhel1 ora.LISTENER_SCAN2.lsnr 1 ONLINE ONLINE rhel2 ora.LISTENER_SCAN3.lsnr 1 ONLINE ONLINE rhel2 ora.cvu 1 ONLINE ONLINE rhel2 ora.oc4j 1 ONLINE ONLINE rhel2 ora.ractest.db 1 OFFLINE OFFLINE 2 OFFLINE OFFLINE ora.ractest.rtser1.svc 1 OFFLINE OFFLINE ora.rhel1.vip 1 ONLINE ONLINE rhel1 ora.rhel2.vip 1 ONLINE ONLINE rhel2 ora.rhelpub21-vip.vip 1 ONLINE ONLINE rhel1 ora.rhelpub22-vip.vip 1 ONLINE ONLINE rhel2 ora.scan1.vip 1 ONLINE ONLINE rhel1 ora.scan2.vip 1 ONLINE ONLINE rhel2 ora.scan3.vip 1 ONLINE ONLINE rhel2
从上面的状态可以看出,ractest数据库的ractest1和ractest2两个实例的TARGET和STATE值都为OFFLINE。执行以下的操作尝试改变这一状态:
[oracle@rhel1 ~]$ srvctl enable database -d ractest[oracle@rhel1 ~]$ srvctl enable instance -d ractest -i ractest1[oracle@rhel1 ~]$ srvctl enable instance -d ractest -i ractest2[oracle@rhel1 ~]$ srvctl start database -d ractest
执行完以上操作之后,再次尝试重启服务器观察数据库实例是否自动启动。
注意:在RAC环境下,不要通过在sqlplus中执行shutdown的方式关闭数据库实例,这样可能导致Clusterware无法正常的管理数据库及实例资源。
另外,也可以参考一下文章:[http://www.itpub.net/thread-1300493-1-1.html](http://www.itpub.net/thread-1300493-1-1.html)
如果以上的操作依然不能使数据库资源自动启动,那么参考下面这篇文章修改资源AUTO_START属性。
How to set auto start resources in 11G RAC
Changing Resource Attributes in 11gR2 Grid Infrastructure
- Check the current auto start values
crsctl stat res -p
NAME=ora.FLASH.dg TYPE=ora.diskgroup.type ACL=owner:oracle:rwx,pgrp:oinstall:rwx,other::r– ACTION_FAILURE_TEMPLATE= ACTION_SCRIPT= AGENT_FILENAME=%CRS_HOME%/bin/oraagent%CRS_EXE_SUFFIX% ALIAS_NAME= AUTO_START=never
NAME=ora.DATA.dg TYPE=ora.diskgroup.type ACL=owner:oracle:rwx,pgrp:oinstall:rwx,other::r– ACTION_FAILURE_TEMPLATE= ACTION_SCRIPT= AGENT_FILENAME=%CRS_HOME%/bin/oraagent%CRS_EXE_SUFFIX% ALIAS_NAME= AUTO_START=never
NAME=ora.clusdb.db TYPE=ora.database.type ACL=owner:oracle:rwx,pgrp:oinstall:rwx,other::r– ACTION_FAILURE_TEMPLATE= ACTION_SCRIPT= ACTIVE_PLACEMENT=1 AGENT_FILENAME=%CRS_HOME%/bin/oraagent%CRS_EXE_SUFFIX% AUTO_START=restore
- Since ASM diskgroup that database depend on will never auto start database will also be unavailable.
- Change the resource start attribute with
crsctl modify resource "ora.FLASH.dg" -attr "AUTO_START=always"
crsctl modify resource "ora.DATA.dg" -attr "AUTO_START=always"
crsctl modify resource ora.clusdb.db -attr "AUTO_START=always"
Auto start must be upper case if not command will fail
crsctl modify resource ora.clusdb.db -attr "auto_start=always" CRS-0160: The attribute 'auto_start' is not supported in this resource type. CRS-4000: Command Modify failed, or completed with errors.
- Verify the status change with
crsctl stat res -p
NAME=ora.clusdb.db TYPE=ora.database.type ACL=owner:oracle:rwx,pgrp:oinstall:rwx,other::r– ACTION_FAILURE_TEMPLATE= ACTION_SCRIPT= ACTIVE_PLACEMENT=1 AGENT_FILENAME=%CRS_HOME%/bin/oraagent%CRS_EXE_SUFFIX% AUTO_START=always 以上文章转载自:http://oracleracdba1.wordpress.com/2013/01/29/how-to-set-auto-start-resources-in-11g-rac/
Oracle 10gR2 RAC参考以下的内容修改资源AUTO_START属性。
使用命令 crs_register resource_name -update [option …] [-o option,…] -q
如:修改资源ora.dbrac.dbrac2.inst 中 AUTO_START值 0,表示:启动到资源重启之前的状态
1,表示: 启动资源
2,表示:不启动资源
修改属性名称采用第一个字母表示,如 AUTO_START = as
crs_register resource_name -update -o as=2
./crs_register ora.rkywk.db -update -o as=1
./crs_register ora.rkcxk.db -update -o as=1
crs_register ora.rkywk.db -update -o as=always
crs_register ora.rkcxk.db -update -o as=always
–end–