客户有个机器上的instance,在机器重启后,总是不随机启动,每次都要手工的srvctl的去start一次。这其实是crs的配置缘故:
[root@rac1 ~]# crsctl stat res ora.ora11g.db -p
NAME=ora.ora11g.db
TYPE=ora.database.type
ACL=owner:oracle:rwx,pgrp:oinstall:r--,other::r--,group:dba:r-x,group:oinstall:r-x,user:oracle:r-x
ACTION_FAILURE_TEMPLATE=
ACTION_SCRIPT=
ACTIVE_PLACEMENT=1
AGENT_FILENAME=%CRS_HOME%/bin/oraagent%CRS_EXE_SUFFIX%
AUTO_START=restore <<======这里配置的是restore,即上次是手工关闭过,等server重启后,instance也是启动到关机前关闭状态。
将auto_start修改成always就可以了。
修改方式:
crsctl modify resource ora.ora11g.db -attr "AUTO_START=always"
检查:
[oracle@rac1 ~]$ crsctl stat res ora.ora11g.db -p |grep AUTO
AUTO_START=always
MANAGEMENT_POLICY=AUTOMATIC
[oracle@rac1 ~]$
在这里要注重一点的是,Oracle的实例在启动以后,只能load一次数据库,假如想把数据库与Instance断开,然后再重新挂在一个数据库Instance,那么就需要你首先把数据库Instance进程结束,然后重新建立这个instance的一个进程,再load另外一个数据库。否则肯定要抛除ORA-16169错误,说数据库已经被打开。因为一个数据库Instance在其生存期中最多只能load和打开一个instance.