Oracle 11G for redhat 自啓動腳本

在$ORACLE_HOME/bin中,有dbstart和dbshut這兩個腳本,可使用這兩個oracle自帶的腳本實現oracle的開機自啓動。這個腳本中包含oraclelistener、instance、asm instances的啓動,一樣dbshut也是起到關閉服務的做用。

方法一:使用/etc/rc.local系統開機啓動腳本,啓動oracleweb

配置系統使dbstart和dbshut腳本起做用:數據庫

1)、以root編輯/etc/oratab,服務器

orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:N 這種格式,oracle

orcl是你的ORACLE_SID,app

/home/oracle/app/oracle/product/11.2.0/dbhome_1是ORACLE_HOME,測試

這裏須要把N改成Y,即orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:Yblog

2)、以oracle編輯$ORACLE_HOME/bin/dbstart,找到其中第78行:ORACLE_HOME_LISTNER=改成你本身的路徑,或者能夠改爲ORACLE_HOME_LISTNER=$ORACLE_HOMEip

保存腳本,以oracle用戶運行dbshut和dbstart看是否能關閉、啓動數據庫。若是不能,通常是參數設置,根據報錯找到對應位置更改。get

通過上一步的配置,能夠直接用dbstart命令啓動數據listener、instance、asm instances,可是尚未啓動oracle10g的EM,ORACLE利用web頁面管理數據庫至關方便,也是10g的一個特點,因此應該一併啓動起該服務來。it

  $ORACLE_HOME/bin/emctl start dbconsole

所以咱們能夠用rc.local或者redhat服務均可以實現要求的開機啓動。下面分別說一下:

1)、利用rc.local。直接把dbstart加到rc.local中,實現開機自動啓動。這裏須要注意的是必須以oracle啓動該腳本。

    用root編輯/etc/rc.local,添加下面三行:

            su oracle –lc "/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start"

    su - oracle -c "/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbstart"

     su - oracle -c "/u01/product/10.2.0/db_1/bin/emctl start dbconsole"

    這裏"/home/oracle/app/oracle/product/11.2.0/dbhome_1須要替換成實際的ORACLE_HOME

保存並退出後,reboot服務器測試一下,能夠看到,當系統啓動之後oracle監聽、實例和em都已經起來了

方法二:使用/etc/rc.d/init.d/oracle 自創腳本啓動關閉數據庫

若是咱們不用rc.local,也能夠加到redhat服務中。在/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

注意其中兩行註釋,網上不少腳本由於少了這兩行不能使服務自啓動:

#chkconfig: 2345 99 01

#description: ORACLE 10g Server

其中chkconfig:2345 99 01 是指腳本將爲運行級二、三、四、5啓動oracle 10g服務,啓動優先級爲99,關閉優先級爲01。

而後以root權限:

#  mv  oracle /etc/init.d

#  chkconfig --add oracle

# chkconfig --list oracle 查看,這樣的話就把ORACLE就能夠開機啓動和關機前shutdown immediate

重啓系統,就能夠在啓動的過程當中看到 Starting oracle  ,由於咱們設置的優先級爲99,通常是最後啓動。[OK]之後就能夠了。由於要啓動emctl,可能有點慢,等待的時間要稍微長一點。

啓動之後能夠以root執行oracle start或者oracle stop來啓動或中止服務

 

總結:我是採用方式一進行實現的,方法二沒有通過測試

轉載請註明:http://blog.163.com/nocturnal_ken/blog/static/17802332720111945726777/

相關文章
相關標籤/搜索