1. 程式人生 > >Linux下oracle開機自啟動設定

Linux下oracle開機自啟動設定

今天在虛擬機器安裝完oracle資料庫重啟系統後想進入資料庫卻發現如下錯誤:

出現ORA-01034和ORA-27101的原因是多方面的:主要是oracle當前的服務不可用,shared memory realm does not exist,是因為oracle沒有啟動或沒有正常啟動。那麼如何在Linux啟動時自動啟動Oracle監聽和例項呢?

首先嚐試使用oracle啟動資料庫的命令dbstart,可是發現又報錯如下錯誤:

  ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener

  Usage: $ORACLE_HOME/bin/dbstart ORACLE_HOME

錯誤原因很明確,是dbstart指令碼檔案中ORACLE_HOME_LISTNER的設定有問題,開啟檔案($ORACLE_HOME/bin/dbstart)找到:ORACLE_HOME_LISTNER=$1,修改為ORACLE_HOME_LISTNER=$ORACLE_HOME即可,同時注意到指令碼檔案中有如下提示:

所以想開機自動啟動資料庫還必須修改/etc/oratab檔案,找到檔案中這行(orcl:/opt/oracle/app/product/12.1.0/dbhome_1:N)並把N替換成Y即可,該行是這樣定義的$ORACLE_SID:$ORACLE_HOME:<N|Y>,具體請參照自己oracle的安裝家目錄以及例項名。到這一步開機自啟動已經解決一大半了,接下來還需要在/etc/rc.d/rc.local檔案中新增如下兩行才能開機自啟動資料庫:

  su oracle -lc "/opt/oracle/app/product/12.1.0/dbhome_1/bin/lsnrctl start"

  su oracle -lc /opt/oracle/app/product/12.1.0/dbhome_1/bin/dbstart

第一行內容是為了開機啟動資料庫監聽服務,第二行才是為了啟動資料庫,注意第一行因為命令中有空格,所以必須加雙引號。(路徑請根據自己資料庫安裝家目錄修改)

到此全部修改完成,重新啟動Linux系統進入資料庫試試吧!

總結:網上有很多講解怎麼設定Linux開機自啟動的,大致有兩類,一種如同上面的方式,還有一種是自己寫啟動指令碼,但原理基本是一樣的。