將Oracle數(shù)據(jù)庫設(shè)為Linux系統(tǒng)服務(wù),并使其能隨系統(tǒng)啟動和關(guān)閉數(shù)據(jù)庫。 1. vi /etc/oratab 將最后一行改為Y. 只有改為Y,Oracle自帶的dbstart與dbshut才能起作用。 如: xcldb:/u01/app/oracle/product/11.2.0/db_1:Y 2. 啟動腳本文件 vi /etc/rc.d/init.d/orac
將Oracle數(shù)據(jù)庫設(shè)為Linux系統(tǒng)服務(wù),并使其能隨系統(tǒng)啟動和關(guān)閉數(shù)據(jù)庫。
1. vi /etc/oratab
將最后一行改為Y. 只有改為Y,Oracle自帶的dbstart與dbshut才能起作用。
如:
xcldb:/u01/app/oracle/product/11.2.0/db_1:Y
2. 啟動腳本文件
vi /etc/rc.d/init.d/oracle
#!/bin/bash #chkconfig: 2345 20 80 #description: Oracle dbstart/dbshut #/etc/rc.d/init.d/oracle export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 ORACLE_OWNER=oracle LOGFILE=/var/log/oracle.log DATE=`date +%Y-%m-%d` echo "################################">>${LOGFILE} echo "## Run Oracle "${DATE} >> ${LOGFILE} if [! -f ${ORACLE_HOME}"/bin/dbstart" ] || [ ! -f ${ORACLE_HOME}"/bin/dbshut" ]; then echo "ERROR: Missing the script file "${ORACLE_HOME}"/bin/dbstart or "${ORACLE_HOME}"/bin/dbshut!">>${LOGFILE} echo "################################">>${LOGFILE} exit fi start(){ touch /var/lock/subsys/oracle echo "###Startup oracle....." su - ${ORACLE_OWNER} -c ${ORACLE_HOME}"/bin/lsnrctl start" su - ${ORACLE_OWNER} -c ${ORACLE_HOME}"/bin/dbstart "${ORACLE_HOME} echo "###Done" #echo "###Run database control......" #su - ${ORACLE_OWNER} -c ${ORACLE_HOME}"/bin/emctl start dbconsole" echo "###Done" echo "###startup oracle successful....." } stop(){ #echo "###Stop database control......" #su - ${ORACLE_OWNER} -c ${ORACLE_HOME}"/bin/emctl stop dbconsole" echo "###Done" echo "###Shutdown oracle------" su - ${ORACLE_OWNER} -c ${ORACLE_HOME}"/bin/lsnrctl stop" su - ${ORACLE_OWNER} -c ${ORACLE_HOME}"/bin/dbshut "${ORACLE_HOME} echo "###Done" rm -f /var/lock/subsys/oracle echo "###Shutdown oracle successful-------" } case "$1" in 'start') start >> ${LOGFILE} ;; 'stop') stop >> ${LOGFILE} ;; 'restart') stop >> ${LOGFILE} start >> ${LOGFILE} ;; *) echo "Usage:`basename $0` start|stop|restart" exit 1 esac echo "###Finished.">>${LOGFILE} echo "################################">>${LOGFILE} exit 0
3. 將腳本設(shè)置為可執(zhí)行
chmod a+x /etc/rc.d/init.d/oracle
授權(quán)后,可手工用下面命令測試前面腳本的正確性:
a. 啟動
/etc/rc.d/init.d/oracle start
b. 停止
/etc/rc.d/init.d/oracle stop
c. 重啟
/etc/rc.d/init.d/oracle restart
4. 手工添加服務(wù)
a.手工添加到chkconfig
chkconfig --add /etc/rc.d/init.d/oracle
b.查看oracle服務(wù)的開機(jī)啟動級別
chkconfig --list oracle 或
chkconfig | grep oracle
#c.修改oracle服務(wù)的開機(jī)啟動級別
#chkconfig --level 24 oracle off
#chkconfig --level 35 oracle on
注意:
如果在啟動腳本前不加下面兩行,會出現(xiàn)"服務(wù)不支持 chkconfig"
#chkconfig: 2345 20 80
#description: Oracle dbstart/dbshut
5. 手工測試服務(wù)
service oracle start
service oracle stop
service oracle restart
6.建立連接
a.關(guān)機(jī)執(zhí)行
ln -s /etc/init.d/oracle /etc/rc.d/rc0.d/K01oracle
b.重啟執(zhí)行
ln -s /etc/init.d/oracle /etc/rc.d/rc6.d/K01oracle
c.開機(jī)執(zhí)行(Oracle10g以后能自啟動了,可以省掉這步)
ln -s /etc/init.d/oracle /etc/rc.d/rc3.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc5.d/S99oracle
7.重啟測試下
reboot
cat /var/log/oracle.log
備注:
腳本中可以看到,start與stop時,弄了個/var/lock/subsys/oracle。
如果不增加這個文件的處理,在系統(tǒng)關(guān)閉時,你會發(fā)現(xiàn)stop并沒有執(zhí)行。
原因可以看看<<簡單的Linux開機(jī)服務(wù)知識>>
BLOG: http://blog.csdn.net/xcl168
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com