客戶有個機器上的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.