問題一:
啟動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”
問題三
>dbstart
Can'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啟動成功,可以在系統啟動界面看到相關信息。