以redhat 和oracle g為例安裝過程參考官方文檔以下是實現oracle自啟動的方法
配置dbstart和dbshut
在$ORACLE_HOME/bin中有dbstart和dbshut這兩個腳本more dbstart看一下可以看到
QUOTE:
#
# $Id: dbstartshpp may:: vikrkuma Exp $
# Copyright (c) Oracle All rights reserved
#
###################################
#
# usage: dbstart
#
# This is used to start ORACLE from /etc/rc(local)
# It should ONLY be executed as part of the system boot procedure
#
# This will start all databases listed in the oratab file
# whose third field is a Y If the third field is set to Y and
# there is no ORACLE_SID for an entry (the first field is a *)
# then this will ignore that entry
#
# This requires that ASM ORACLE_SIDs start with a + and
# that nonASM instance ORACLE_SIDs do not start with a +
#
# If ASM instances are to be started with this it cannot
# be used inside an rc*d directory and should be invoked from
# rclocal only Otherwise the CSS service may not be available
# yet and this will block init from completing the boot
# cycle
#
# Note:
# Use ORACLE_TRACE=T for tracing this
#
# The progress log for each instance bringup plus Error and Warning message[s]
# are logged in file $ORACLE_HOME/startuplog The error messages related to
# instance bringup are also logged to syslog (system log module)
# The Listener log is located at $ORACLE_HOME_LISTNER/listenerlog
可以看出這個腳本是用來啟動oracle服務的包括listenerinstanceasm instances並且可以放到/etc/rc(local)同樣dbshut也是起到關閉服務的作用
配置系統使這個腳本起作用
)以root編輯/etc/oratab類似 orcl:/u/product//db_:N 這種格式其中orcl是你的ORACLE_SID/u/product//db_是ORACLE_HOME這裡需要把N改為Y即orcl:/u/product//db_:Y這樣
)以oracle編輯$ORACLE_HOME/bin/dbstart找到其中第行:ORACLE_HOME_LISTNER=改為你自己的路徑或者可以改成ORACLE_HOME_LISTNER=$ORACLE_HOME
保存腳本以oracle用戶運行dbshut和dbstart看是否能關閉啟動數據庫如果不能一般是參數設置根據報錯找到對應位置更改
把dbstart和dbshut加到redhat啟動服務中
經過上一步的配置可以直接用dbstart命令啟動數據listenerinstanceasm instances但是還沒有啟動oracleg的EMORACLE利用web頁面管理數據庫相當方便也是g的一個特色所以應該一並啟動起該服務來
QUOTE:
$ORACLE_HOME/bin/emctl start dbconsole
因此我們可以用rclocal或者redhat服務都可以實現要求的開機啟動下面分別說一下
)利用rclocal直接把dbstart加到rclocal中實現開機自動啟動這裡需要注意的是必須以oracle啟動該腳本
用root編輯/etc/rclocal添加下面一行
QUOTE:
su oracle c /u/product//db_/bin/dbstart
su oracle c /u/product//db_/bin/emctl start dbconsole
這裡/u/product//db_需要替換成實際的ORACLE_HOME
保存並退出後reboot服務器測試一下可以看到當系統啟動以後oracle監聽實例和em都已經起來了
)如果我們不用rclocal也可以加到redhat服務中在/etc/rcd/initd中添加如下腳本文件命名為oracle
QUOTE:
#!/bin/sh
#chkconfig:
#deion: ORACLE g Server
ORACLE_HOME=/u/product//db_
if [ ! f $ORACLE_HOME/bin/dbstart ]
then
echo ORACLE cannot start
exit
fi
case $ in
start)
echo Starting Oracle Database
su oracle c $ORACLE_HOME/bin/dbstart
su oracle c $ORACLE_HOME/bin/emctl start dbconsole
;;
stop)
echo Stoping Oracle Database
su oracle c $ORACLE_HOME/bin/emctl stop dbconsole
su oracle c $ORACLE_HOME/bin/dbshut
;;
esac
注意其中兩行注釋網上很多腳本因為少了這兩行不能使服務自啟動
QUOTE:
#chkconfig:
#deion: ORACLE g Server
其中chkconfig 是指腳本將為運行級啟動oracle g服務啟動優先級為關閉優先級為
然後以root權限:
QUOTE:
# cd /etc/rcd
# ln s /etc/rcd/initd/oracle Soracle
# chkconfig list oracle
# chkconfig level on
重啟系統就可以在啟動的過程中看到 Starting oracle因為我們設置的優先級為一般是最後啟動[OK]以後就可以了因為要啟動emctl可能有點慢等待的時間要稍微長一點
啟動以後可以以root執行oracle start或者oracle stop來啟動或停止服務
From:http://tw.wingwit.com/Article/program/Oracle/201311/16863.html