oracle啟動dbstart出錯或無反應的解決辦法及自啟動(Linux平台)

來源:互聯網
上載者:User
文章目錄
  • 問題一:
  • 問題二:
  • 問題三
  • 問題四:自啟動
問題一:
啟動dbstart 報錯 Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr

     linux成功安裝Oracle10G後切換到Oracle使用者後,直接使用”dbstart”($ORACLE_HOME/bin中)啟動oracle資料庫報錯“Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr“。原因是dbstart調用的tnslsnr指令碼位置有錯。解決辦法:

開啟該指令碼:vim $ORACLE_HOME/bin/dbstart,

尋找“ORACLE_HOME_LISTENER”變數的定義處,

修改“ORACLE_HOME_LISTENER=/ade/vikrkuma_new/oracle”--〉“ORACLE_HOME_LISTENER=$ORACLE_HOME”

問題二:
啟動dbstart 沒有反應,即不報錯也不顯示啟動資訊

      原因是oracle的配置需要修改才能使用dbstart啟動對應的資料執行個體。解決辦法:

su - root
vim /etc/oratab
將類似“orcl:/opt/oracle/product/9.2.0.4:N”-->“orcl:/opt/oracle/product/9.2.0.4:Y”即“N”改為“Y”

問題三
>dbstartCan't find init file for Database "orcl".

Database "orcl" NOT started.

原因就是沒有找到init檔案 我的資料庫執行個體是orcl

這個檔案在$ORACLE_HOME/dbs/目錄下
>cd $ORACLE_HOME/dbs

解決辦法就是建立一個initorcl.ora的軟串連就可以了
> ln -s spfileego.ora initorcl.ora

問題四:自啟動

Linux啟動時,會運行一個init程式,然後由init來啟動後面的任務,包括多使用者環境(inittab中設定)和網路等。運行級就是當前程式啟動並執行功能層級,這個層級從1到6,具有不同的功能。這些層級在/etc/inittab中指定,該檔案就是init程式尋找的主要檔案。最先啟動並執行服務放在/etc/rc.d目錄下。

檔案以S開頭,代表start(啟動),後面的數字是啟動順序;檔案以K開頭,代表kill(結束),同樣,後面的數字代表結束順序。

例如/etc/rc2.d/S10network代表它與運行層級2有關,10就是他的啟動順序。

目錄介紹:

init.d

    這個目錄中存放了一些服務啟動指令碼,系統安裝時的多個rpm包,這些指令碼在執行時可以用來啟動,停止和重啟這些服務。

rcx.d(x為0~6)

    這個目錄是啟動層級的執行程式連結目錄,裡面的檔案都是指向init.d目錄中檔案的一些軟串連。

配置步驟:

1、修改dbstart和dbshut指令碼:dbstart和dbshut兩個shell指令碼,在oracle11g下,我們需要手動修改一下這兩個個指令碼,將ORACLE_HOME_LISTNER=$1這行修改為:ORACLE_HOME_LISTNER=$ORACLE_HOME,儲存退出

2、修改/etc/oratab:

orcl:$ORACLE_HOME:N修改為orcl:$ORACLE_HOME:Y

將N修改為Y,表示可以在作業系統啟動階段運行oracle資料庫

3、vi /etc/rc.d/init.d/oracle,編輯如下資訊:

#! /bin/bash
# chkconfig: 234 61 61
# description: Oracle 11g AutoRun Service
# /etc/rc.d/init.d/oracle

case "$1" in
start)
# starts oracle listener and instance
echo "Starting Oracle Database:"
su oracle -lc "lsnrctl start"
su oracle -lc dbstart
;;
stop)
# shutdown oracle listner and instance
echo "Shuting down Oracle Database:"
su oracle -lc "lsnrctl stop"
su oracle -lc dbshut
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: {start|stop|reload|restart}"
exit 1
esac
exit 0

 

編輯完成後,儲存退出

4、檢查一下指令碼能否正確執行:

cd /etc/rc.d/init.d

./oracle start

./oracle stop

5、執行如下命令:

chmod 750 /etc/rc.d/init.d/oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle

chkconfig –-level 234 oracle on

chkconfig –-add oracle

關於chkconfig,執行chkconfig時,需要在指令碼中添加至少兩行注釋行,第一行告訴chkconfig該服務的運行層級;第二行添加關於服務的一些說明

5、最後重啟動一下linux作業系統,檢查oracle是否自動啟動成功

重新啟動後,oracle啟動成功,可以在系統啟動介面看到相關資訊。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.