Redhat AS4 下Oracle 自動(dòng)啟動(dòng)腳本出處: http://blog./html/58/12945358-420019.html
以redhat as4和oracle 10g為例。安裝oracle后首先用sqlplus啟動(dòng)下oracle,可以啟動(dòng)后,按照一下步驟實(shí)現(xiàn)開機(jī)啟動(dòng)。 在$ORACLE_HOME/bin中,有dbstart和dbshut這兩個(gè)腳本,可以使用這兩個(gè)oracle自帶的腳本實(shí)現(xiàn)oracle的開機(jī)自啟動(dòng)。這個(gè)腳本中包含oraclelistener、instance、asm instances的啟動(dòng),同樣dbshut也是起到關(guān)閉服務(wù)的作用。 方法一:使用/etc/rc.local系統(tǒng)開機(jī)啟動(dòng)腳本,啟動(dòng)oracle 配置系統(tǒng)使dbstart和dbshut腳本起作用: 1)、以root編輯/etc/oratab,類似 orcl:/u01/product/10.2.0/db_1:N 這種格式,其中orcl是你的ORACLE_SID,/u01/product/10.2.0/db_1是ORACLE_HOME,這里需要把N改為Y,即orcl:/u01/product/10.2.0/db_1:Y這樣。 2)、以oracle編輯$ORACLE_HOME/bin/dbstart,找到其中第78行:ORACLE_HOME_LISTNER=改為你自己的路徑,或者可以改成ORACLE_HOME_LISTNER=$ORACLE_HOME 保存腳本,以oracle用戶運(yùn)行dbshut和dbstart看是否能關(guān)閉、啟動(dòng)數(shù)據(jù)庫(kù)。如果不能,一般是參數(shù)設(shè)置,根據(jù)報(bào)錯(cuò)找到對(duì)應(yīng)位置更改。 經(jīng)過上一步的配置,可以直接用dbstart命令啟動(dòng)數(shù)據(jù)listener、instance、asm instances,但是還沒有啟動(dòng)oracle10g的EM,ORACLE利用web頁(yè)面管理數(shù)據(jù)庫(kù)相當(dāng)方便,也是10g的一個(gè)特色,所以應(yīng)該一并啟動(dòng)起該服務(wù)來。 $ORACLE_HOME/bin/emctl start dbconsole 因此我們可以用rc.local或者redhat服務(wù)都可以實(shí)現(xiàn)要求的開機(jī)啟動(dòng)。下面分別說一下: 1)、利用rc.local。直接把dbstart加到rc.local中,實(shí)現(xiàn)開機(jī)自動(dòng)啟動(dòng)。這里需要注意的是必須以oracle啟動(dòng)該腳本。 用root編輯/etc/rc.local,添加下面三行: su oracle -lc "/u01/oracle/bin/lsnrctl start" su - oracle -c "/u01/product/10.2.0/db_1/bin/dbstart" su - oracle -c "/u01/product/10.2.0/db_1/bin/emctl start dbconsole" 這里/u01/product/10.2.0/db_1需要替換成實(shí)際的ORACLE_HOME 保存并退出后,reboot服務(wù)器測(cè)試一下,可以看到,當(dāng)系統(tǒng)啟動(dòng)以后oracle監(jiān)聽、實(shí)例和em都已經(jīng)起來了
方法二:使用/etc/rc.d/init.d/oracle 自創(chuàng)腳本啟動(dòng)關(guān)閉數(shù)據(jù)庫(kù) 如果我們不用rc.local,也可以加到redhat服務(wù)中。在/etc/rc.d/init.d中添加如下腳本文件,命名為oracle: #!/bin/sh #chkconfig: 2345 99 01 #description: ORACLE 10g Server ORACLE_HOME=/u01/product/10.2.0/db_1 if [ ! -f $ORACLE_HOME/bin/dbstart ] then echo "ORACLE cannot start" exit fi case "$1" 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 注意其中兩行注釋,網(wǎng)上很多腳本因?yàn)樯倭诉@兩行不能使服務(wù)自啟動(dòng): #chkconfig: 2345 99 01 #description: ORACLE 10g Server 其中chkconfig:2345 99 01 是指腳本將為運(yùn)行級(jí)2、3、4、5啟動(dòng)oracle 10g服務(wù),啟動(dòng)優(yōu)先級(jí)為99,關(guān)閉優(yōu)先級(jí)為01。 然后以root權(quán)限: # mv oracle /etc/init.d # chkconfig --add oracle # chkconfig --list oracle 查看,這樣的話就把ORACLE就可以開機(jī)啟動(dòng)和關(guān)機(jī)前shutdown immediate 重啟系統(tǒng),就可以在啟動(dòng)的過程中看到 Starting oracle ,因?yàn)槲覀冊(cè)O(shè)置的優(yōu)先級(jí)為99,一般是最后啟動(dòng)。[OK]以后就可以了。因?yàn)橐獑?dòng)emctl,可能有點(diǎn)慢,等待的時(shí)間要稍微長(zhǎng)一點(diǎn)。 啟動(dòng)以后可以以root執(zhí)行oracle start或者oracle stop來啟動(dòng)或停止服務(wù) |
|