標籤:
Linux下安裝完後每次都得通過下面命令來啟動對應的服務:
啟動服務 dbstart
啟動監視器 lsnrctl start
啟動控制台 emctl start dbconsole
本文以Red Hat Enterprise Linux 6.4 (x86_64)為例設定oracle開機自動啟動:
vi /etc/rc.local
把下面的內容加入
su - oracle -c "
export ORACLE_SID=orcl
sqlplus /nolog <<EOF
connect / as sysdba
startup;
exit;
EOF"
su - oracle -c ‘$ORACLE_HOME/bin/lsnrctl start‘
su - oracle -c ‘$ORACLE_HOME/bin/emctl start dbconsole‘
說明下上面指令碼:
在shell指令碼中,通常將EOF與 << 結合使用,表示後續的輸入作為子命令或子Shell的輸入,直到遇到EOF為止,再返回到主Shell。
EOF只是一個分界符,當然也可以用abcde替換。
當shell遇到<<時,它知道下一個詞是一個分界符。在該分界符以後的內容都被當作輸入,直到shell又看到該分界符(位於單獨的一行)。
此分界符可以是所定義的任何字串,其實,不一定要用EOF,只要是“內容段”中沒有出現的字串,都可以用來替代EOF,完全可以換成abcde之類的字串,只是一個起始和結束的標誌罷了。
1,command<<EOF
(內容)
EOF
例如:
#!/bin/bash#Filename:do.shsu - oracle -c "export ORACLE_SID=orclsqlplus /nolog <<EOFconnect / as sysdbastartup;exit;EOF"sleep 5su - oracle -c lsnrctl start
說明:
將“內容段”整個作為命令的輸入。
用su命令讀取整段命令,並逐行執行。
本文出自 “石頭多的部落格” 部落格,請務必保留此出處http://dayday.blog.51cto.com/3248/1739903
oracle 11.2.0.3 設定啟動指令碼使ORACLE自動啟動