[toc]
一、Windows系統(tǒng)
Oracle提供了隨操作系統(tǒng)啟動而啟動的功能雏门,在Windows和Linux中嘿歌,分別有不同的設(shè)置方法掸掏。
在Windows中,可以修改“我的電腦-->管理-->服務(wù)-->OracleService$ORACLE_SID”宙帝,或直接使用Win+R鍵打開運(yùn)行窗口阅束,輸入services.msc即可打開服務(wù),找到相應(yīng)的Oracle服務(wù)茄唐,然后將其屬性中的啟動類型修改成自動息裸。一般在Windows系統(tǒng)上安裝完后會自動設(shè)置成自動。
二沪编、Linux系統(tǒng)
對于Linux/Unix操作系統(tǒng)呼盆,如果想設(shè)置自動重啟,那么該如何操作呢蚁廓?對此Oracle提供了dbstart命令用于啟動访圃。
首先,第一步相嵌,需要修改/etc/oratab
文件腿时,將N修改為Y
[root@oracle ~]# vim /etc/oratab
LHR11G:/u01/app/oracle/product/11.2.0.4/dbhome_1:Y #將N改為Y
文件/etc/oratab
由root.sh腳本創(chuàng)建,在用dbca命令創(chuàng)建實(shí)例時也會更新這個文件饭宾。當(dāng)$ORACLE_SID:$ORACLE_HOME:<N|Y>
設(shè)置為Y時批糟,允許實(shí)例自啟動,當(dāng)設(shè)置為N時看铆,則不允許自啟動徽鼎。這個文件里的配置僅僅起一個開關(guān)的作用,其并不會具體的執(zhí)行啟動和關(guān)閉弹惦,具體的操作由$ORACLE_HOME/bin/dbstart
和dbshut腳本來實(shí)現(xiàn)否淤。這2個腳本在執(zhí)行時會檢查/etc/oratab
文件里的配置,為Y時才能繼續(xù)執(zhí)行棠隐。
接下來需要配置開機(jī)啟動文件石抡,有2種辦法:
方法1:配置/etc/rc.d/rc.local文件(推薦)
在配置了/etc/oratab
文件后,然后將以下腳本添加到/etc/rc.d/rc.local或/etc/rc.local文件中(/etc/rc.local是/etc/rc.d/rc.local的軟連接文件):
cat >> /etc/rc.d/rc.local <<"EOF"
# 重啟DB
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1
su oracle -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
# 重啟EM
export ORACLE_UNQNAME=LHR11G
su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
EOF
該方法需要注意以下問題:
1助泽、若環(huán)境中沒有創(chuàng)建EM啰扛,則可以不用添加ORACLE_UNQNAME和emctl這2行
2、從Oracle 12c開始报咳,由于EMDE(Enterprise Manager Database Express)替代了原有的EMDC(Enterprise Manager Database Control)侠讯,所以,不再單獨(dú)設(shè)置EM相關(guān)內(nèi)容暑刃,只需要配置DB即可厢漩,例如:
cat >> /etc/rc.d/rc.local <<"EOF"
# 重啟DB
export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
su oracle -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
EOF
3、在CentOS 7中岩臣,/etc/rc.d/rc.local的權(quán)限被降低了溜嗜,所以需要執(zhí)行如下命令賦予其可執(zhí)行權(quán)限:
chmod +x /etc/rc.d/rc.local
最后就可以重啟OS做測試工作了宵膨。
方法2:配置service服務(wù)
1. 建立啟動腳本
使用root用戶創(chuàng)建腳本/etc/rc.d/init.d/oracle
,腳本內(nèi)容如下炸宵,注意修改第6-9行的相關(guān)內(nèi)容:
#!/bin/bash
# chkconfig: 2345 99 10
# description: Startup Script for oracle Databases
# /etc/rc.d/init.d/oracle
export ORACLE_BASE=/u01/app/oracle/
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_UNQNAME=LHR11G
echo " " >> /var/log/oraclelog
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
case "$1" in
start)
echo "-----startup oracle-----" >> /var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbstart"
su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
echo "-----startup oracle successful-----" >> /var/log/oraclelog
echo "OK"
;;
stop)
echo "-----shutdown oracle-----" >> /var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbshut"
su oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelogg
echo "-----shutdown oracle successful-----" >> /var/log/oraclelog
echo "OK"
;;
restart)
echo "-----shutdown oracle-----" >> /var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbshut"
su oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
echo "-----shutdown oracle successful-----" >> /var/log/oraclelog
echo "-----startup oracle-----" >> /var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbstart"
su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
echo "-----startup oracle successful-----" >> /var/log/oraclelog
echo "OK"
;;
*)
echo "Usage: 'basename $0' start|stop|restart"
exit 1
esac
exit 0
2. 給腳本設(shè)置權(quán)限
[root@oracle ~]# chmod 755 /etc/rc.d/init.d/oracle
3.建立服務(wù)
[root@oracle ~]# chkconfig --add oracle
[root@oracle ~]# chkconfig oracle on
[root@oracle ~]# chkconfig --list oracle
oracle 0:off 1:off 2:on 3:on 4:on 5:on 6:off
4.檢查是否生效
先使用root用戶測試服務(wù)是否生效:
[root@oracle ~]# service oracle stop
[root@oracle ~]# service oracle start
[root@oracle ~]# service oracle restart
再重啟OS辟躏,驗(yàn)證是否生效。
三土全、Oracle 18c版本
從Oracle 18c開始捎琐,對于單機(jī)環(huán)境來說,可以使用rpm包來直接安裝Oracle軟件裹匙,在安裝完成后瑞凑,會生成一個腳本,類似/etc/init.d/oracledb_$ORACLE_SID-$ORACLE_VERSION
概页,該腳本可以用來啟動和關(guān)閉Oracle軟件籽御,所以也可以使用該腳本來直接配置開機(jī)啟動:
cat >> /etc/rc.d/rc.local <<"EOF"
/etc/init.d/oracledb_ORCLCDB-18c start
/etc/init.d/oracledb_lhrsdb-18c start
EOF
chmod +x /etc/rc.d/rc.local
重啟OS,測試通過惰匙。
四技掏、總結(jié)
對于這2種方法,需要注意的幾個問題:
- 若有多個實(shí)例项鬼,那么多個實(shí)例都會自動啟動哑梳。
- 監(jiān)聽也會自動啟動。
- 若數(shù)據(jù)庫小于18c秃臣,則重啟的詳細(xì)日志為:
$ORACLE_HOME/shutdown.log
和$ORACLE_HOME/startup.log
涧衙。從Oracle 18c開始,dbstart的日志文件在$ORACLE_HOME/rdbms/log/startup.log
- oracle用戶的環(huán)境變量可以不用配置奥此。
-
ORACLE_UNQNAME
的作用是設(shè)置EM的環(huán)境變量,emctl是啟動OEM雁比,若沒有則可以不用設(shè)置稚虎。 -
ORACLE_HOME
的作用是設(shè)置數(shù)據(jù)庫監(jiān)聽的環(huán)境變量。 - 對于Oracle 10.2.0.1來說偎捎,監(jiān)聽不能自動啟動蠢终。需要修改腳本
$ORACLE_HOME/bin/dbstart
,修改ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
為“ORACLE_HOME_LISTNER=$1
” - 對于ASM茴她、RAC環(huán)境寻拂,只需要將數(shù)據(jù)庫資源注冊到CRS中,即可實(shí)現(xiàn)開機(jī)啟動丈牢。
- 從Oracle 18c開始祭钉,可以使用腳本
/etc/init.d/oracledb_$ORACLE_SID-$ORACLE_VERSION
來啟動Oracle數(shù)據(jù)庫。 - 以上方法在Oracle 10g己沛、11g慌核、12cR1(12.1.0.2)距境、12cR2(12.2.0.1)、18c(12.2.0.2)和19c(12.2.0.3)中測試通過垮卓。
About Me
● 本文作者:小麥苗垫桂,部分內(nèi)容整理自網(wǎng)絡(luò),若有侵權(quán)請聯(lián)系小麥苗刪除
● 本文原始發(fā)表于個人微 信公眾號(DB寶)上
● QQ群號: 230161599 粟按、618766405诬滩,微信群私聊
● 個人QQ號(646634621),微 信號(db_bao)灭将,注明添加緣由
● 版權(quán)所有疼鸟,歡迎分享本文,轉(zhuǎn)載請保留出處