這篇文章主要介紹“Oracle 11g系統(tǒng)怎么設(shè)置自動啟動與關(guān)閉”,在日常操作中,相信很多人在Oracle 11g系統(tǒng)怎么設(shè)置自動啟動與關(guān)閉問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”O(jiān)racle 11g系統(tǒng)怎么設(shè)置自動啟動與關(guān)閉”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了南部免費建站歡迎大家使用!Oracle 11g系統(tǒng)自動啟動與關(guān)閉的設(shè)置方法
第一步:要在Linux中設(shè)置允許ORACLE系統(tǒng)自動啟動,因為默認情況下是設(shè)置為不允許的。
1.在root賬戶下修改/etc/oratab 文件:
# vi /etc/oratab
找到orcl=/db/app/oracle/product/11.1.0/db_1 :N
改為:orcl=/db/app/oracle/product/11.1.0/db_1 :Y
也就是將最后的N改為Y,將不允許自動啟動改為允許自動啟動。
2.修改ORACLE自帶的啟動與關(guān)閉腳本,分別是dbstart和dbshut。執(zhí)行這兩個腳本就可以實現(xiàn)ORACLE腳本的啟動與關(guān)閉。
在oracle賬戶下修改$ORACLE_HOME/bin/dbstart文件:
$ vi $ORACLE_HOME/bin dbstart
找到 ORACLE_HOME_LISTNER=$1這一行
改為:ORACLE_HOME_LISTNER=$ORACLE_HOME
之所以做這一步,是因為在這個腳本自動生成的時候,也就是ORACLE被安裝進Linux的時候,這個腳本并不知道你的 ORACLE_HOME_LISTNER是什么,現(xiàn)在要將這個參數(shù)顯示的寫明,這樣就不會在執(zhí)行這個腳本的時候報 ORACLE_HOME_LISTNER沒有被指定的錯誤了。
注意:dbstart和dbshut腳本在10g版本之后就已經(jīng)將監(jiān)聽器的啟動與關(guān)閉合并進數(shù)據(jù)庫實例的啟動與關(guān)閉腳本里面了,而不再是單獨分開的了。
同樣的方式,也要修改dbshut的這個參數(shù)。這里就不再詳細寫出了,他們在同一個目錄下。
第二步:寫一個腳本,把它注冊為一個系統(tǒng)服務(wù),讓它在開機與關(guān)機的時候運行。它的作用就是調(diào)用并執(zhí)行dbstart和dbshut。這樣不就實現(xiàn)了數(shù)據(jù)庫啟動與關(guān)閉了。
這個腳本被放在/etc/init.d目錄中,腳本的名字是oracle
腳本代碼如下:
#!/bin/bash
# chkconfig: 2345 96 11
# description:Startup Script for oracle Databases
#/etc/rc.d/init.d/oradbstart
exportORACLE_BASE=/u01/app/oracle/
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
exportORACLE_SID=ORDB
exportPATH=$PATH:$ORACLE_HOME/bin
case "$1"in
start)
echo"-----startup oracle-----" >> /var/log/oraclelog
su - oracle -c"$ORACLE_HOME/bin/dbstart"
touch/var/lock/subsys/oracle
echo"-----startup oracle successful-----" >> /var/log/oraclelog
echo "OK"
;;
stop)
echo"-----shutdwn oracle-----" >> /var/log/oraclelog
su - oracle -c"$ORACLE_HOME/bin/dbshut"
rm -f/var/lock/subsys/oracle
echo"-----shutdown oracle successful-----" >> /var/log/oraclelog
echo "OK"
;;
reload|restart)
$0 stop
$1 start
;;
*)
echo "Usage:'basename $0' start|stop|reload|restart"
exit 1
esac
exit 0保存并退出。
現(xiàn)在,我要對這段腳本做一個關(guān)鍵解釋:
第一:# chkconfig: 2345 99 10 雖是一行注釋,但是確實關(guān)鍵的必不可少的一行, 除非你不用chkconfig命令來自動生成符號連接文件,而是完全采用手工創(chuàng)建。否則沒有這一行,執(zhí)行chkconfig系統(tǒng)將會報出oracle沒有chkconfig服務(wù)權(quán)限的錯誤。
第二:su - oracle -c $ORACLE_HOME/bin/dbstart 和touch /var/lock/subsys/oracle這兩行的作用是首先執(zhí)行dbstart腳本啟動oracle,然后在服務(wù)活動列表目錄中創(chuàng)建一個與oracle這個服務(wù)同名的一個文件,表示這個服務(wù)是活動的,也就是被啟動的。
而su - oracle -c $ORACLE_HOME/bin/dbshut 和rm -f /var/lock/subsys/oracle這兩行的作用是首先執(zhí)行dbshut腳本關(guān)閉oracle,然后從服務(wù)活動列表目錄中刪除那個與oracle同名的那個文件,表示這個服務(wù)不是活動的,也就是已經(jīng)被關(guān)閉。
那么為什么要做touch /var/lock/subsys/oracle和rm -f /var/lock/subsys/oracle這兩步呢?原因是跟Linux系統(tǒng)的機制有關(guān)的:Linux的判別一個服務(wù)是否被啟動的依據(jù)是在/var/lock/subsys/目錄下是否有與服務(wù)名相同的文件,若有則表示這個服務(wù)已經(jīng)被啟動了,在系統(tǒng)關(guān)閉的時候,Linux會把這里面列出的服務(wù)全部關(guān)閉,并刪掉與服務(wù)同名的文件。若一個服務(wù)被啟動了,但卻在這個目錄里沒有那個服務(wù)的同名文件,則不會關(guān)閉那個服務(wù)。
網(wǎng)上的文章均將這個地方設(shè)置錯了,所以會發(fā)現(xiàn),ORACLE可以隨系統(tǒng)啟動了,但卻沒有隨系統(tǒng)關(guān)閉。我也是分析了/etc/rc.d/rc.local后才發(fā)現(xiàn)這個原理的。經(jīng)過試驗,果然如此。再分析mysql的啟動與關(guān)閉腳本也是這樣做的,最終恍然大悟。原來如此。這個地方請大家注意了。
最后,就是將這個腳本注冊成為一個系統(tǒng)服務(wù)就可以了,方法有二:
其一:先給腳本分配可以被執(zhí)行的權(quán)限。執(zhí)行下面命令:
代碼如下:
#su - root
chown oracle /etc/init.d/oracle
chmod 775 /etc/init.d/oracle
再創(chuàng)建符號鏈接文件。
chkconfig --add /etc/init.d/oracle,執(zhí)行這個命令就需要你在腳本中寫上
# chkconfig: 2345 99 10 了。這樣當(dāng)這個命令被執(zhí)行的時候,會去oracle文件中尋找這行注釋,并解析這行注釋,根據(jù)解析結(jié)果分別在/etc/rc.d/rc2.d;/etc/rc.d/rc3.d;/etc/rc.d/rc4.d;/etc/rc.d/rc5.d中創(chuàng)建符號連接文件S99oracle文件,這個文件是系統(tǒng)啟動時要執(zhí)行的,其實這個文件是指向/etc/init.d/oracle的,啟動的時候系統(tǒng)向這個文件發(fā)送一個start參數(shù),也就執(zhí)行了oracle文件中的start分支了。
另外還會在/etc/rc.d/rc0.d;/etc/rc.d/rc1.d;/etc/rc.d/rc6.d中創(chuàng)建K10oracle文件,這個文件時系統(tǒng)關(guān)閉時要執(zhí)行的,其實這個文件也是指向/etc/init.d/oracle的,關(guān)閉的時候系統(tǒng)向這個文件發(fā)送一個stop參數(shù),也就執(zhí)行了oracle文件中的stop分支了。
我想你應(yīng)該明白# chkconfig: 2345 99 10 中這些數(shù)字的含義了吧:
指出2,3,4,5級別啟動這個服務(wù),99是在相應(yīng)的/etc/rc.d/rcN.d(N為前面指定的級別,這里是2345)目錄下生成的鏈接文件的序號(啟動優(yōu)先級別)S99oracle,10為在除前面指出的級別對應(yīng)的/etc/rc.d/rcN.d(N為除2345之外的級別)目錄生成的鏈接文件的序號(服務(wù)停止的優(yōu)先級別)K10oracle。至于為什么在這些目錄中創(chuàng)建文件和文件的命名規(guī)則,這就要您對Linux的系統(tǒng)啟動流程有一個熟悉的了解了,在這就不詳談了。
其二:若您想嘗試一下手動創(chuàng)建符號連接文件的樂趣,請執(zhí)行如下命令:
代碼如下:
#su - root
ln -s /etc/init.d/oracle/etc/rc.d/rc2.d/S99oracle
ln -s /etc/init.d/oracle/etc/rc.d/rc3.d/S99oracle
ln -s /etc/init.d/oracle/etc/rc.d/rc4.d/S99oracle
ln -s /etc/init.d/oracle/etc/rc.d/rc5.d/S99oracle
ln -s /etc/init.d/oracle/etc/rc.d/rc0.d/K10oracle
ln -s /etc/init.d/oracle/etc/rc.d/rc1.d/K10oracle
ln -s /etc/init.d/oracle/etc/rc.d/rc6.d/K10oracle
其實手動這樣操作作用效果和執(zhí)行chkconfig --add oracle是一樣的。
到此,所有設(shè)置就完成了,下面進行一下測試:
#cd /etc/init.d
sh oracle start 或者service oracle start
執(zhí)行后,看看/var/log目錄下的oraclelog文件,里面是不是有腳本的啟動分支輸出信息呢?
sh oracle stop或者service oracle stop
執(zhí)行后,看看/var/log目錄下的oraclelog文件,里面是不是有腳本的關(guān)閉分支輸出信息呢?
若看到信息,表示您設(shè)置成功了。若沒有,請再仔細設(shè)置一遍,并注意文件的權(quán)限問題。
到此,關(guān)于“Oracle 11g系統(tǒng)怎么設(shè)置自動啟動與關(guān)閉”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
名稱欄目:Oracle11g系統(tǒng)怎么設(shè)置自動啟動與關(guān)閉-創(chuàng)新互聯(lián)
文章地址:http://jinyejixie.com/article34/depjpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站導(dǎo)航、外貿(mào)建站、品牌網(wǎng)站制作、關(guān)鍵詞優(yōu)化、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容