說明:如下操做環境在CentOS 6.4 + Oracle 11gR2(Oracle安裝在ORACLE_BASE=/opt/oracle中,其ORACLE_HOME=/opt/oracle/11g)web
用OUI安裝並配置Oracle數據庫後,Oracle就開啓了(包括:數據庫實例、監聽器、EM)。在重啓操做系統以後,Oracle默認是沒有啓動的。使用以下命令查看Oracle相關服務是否已啓動:sql
ps aux | grep ora_ #若無ora_**_**相關的進程,則oracle數據庫實例未啓動 netstat -tlnup | grep 1521 #若無任何顯示,則監聽器未啓動 lsnrctl status #查看監聽器狀態 netstat -tlnup | grep 1158 #若無任何顯示,則EM未啓動 emctl status dbconsole #查看EM狀態
手工啓動Oracle實例,可用sqlplus創建一個idle instance,而後再用startup啓動,以下:數據庫
數據庫實例啓動以後,需啓動監聽器,才能讓遠程用戶創建鏈接。可以使用以下命令啓動監聽器:瀏覽器
lsnrctl start
Oracle還提供網頁版的管理器,要使用該管理器需啓動相關服務,使用以下命令啓動:oracle
emctl start dbconsole
至此,可在web瀏覽器中輸入:https://{主機IP 或 主機名 或 本地localhost}:1158/em,打開管理器,使用相關賬號登陸進行數據庫查看和管理。操作系統
若是每次重啓操做系統都要進行以上操做好麻煩,那麼如何讓Oracle做爲系統服務在開機的時候自動啓動呢?rest
Oracle在$ORACLE_HOME/bin下提供許多對數據庫進行操做的腳本,其中dbstart和dbshut可分別用來啓動和關閉數據庫。注意,這兩個腳本已包含監聽器的啓動或關閉,但並未對EM進行相關的操做。使用以下命令:進程
/opt/oracle/11g/bin/dbstart /opt/oracle/11g #啓動數據庫實例(包含監聽器) /opt/oracle/11g/bin/dbshut /opt/oracle/11g #關閉數據庫實例(包括監聽器)
以上命令要成功啓動數據庫實例還得打開Oracle設置的一個關卡:vi /etc/oratab,修改行:ip
orcl:/opt/oracle/11g:Y #默認爲orcl:/opt/oracle/11g:N
以root身份創建開機啓動oracle服務的腳本:vi /etc/init.d/oracle,添加以下腳本:it
#!/bin/sh #chkconfig: 2345 20 80 #description: Oracle dbstart / dbshut #以上兩行爲chkconfig所需 ORA_HOME=/opt/oracle/11g ORA_OWNER=oracle LOGFILE=/var/log/oracle.log echo "#################################" >> ${LOGFILE} date +"### %T %a %D: Run Oracle" >> ${LOGFILE} if [ ! -f ${ORA_HOME}/bin/dbstart ] || [ ! -f ${ORA_HOME}/bin/dbshut ]; then echo "Error: Missing the script file ${ORA_HOME}/bin/dbstart or ${ORA_HOME}/bin/dbshut!" >> ${LOGFILE} echo "#################################" >> ${LOGFILE} exit fi start(){ echo "###Startup Database..." su - ${ORA_OWNER} -c "${ORA_HOME}/bin/dbstart ${ORA_HOME}" echo "###Done." echo "###Run database control..." su - ${ORA_OWNER} -c "${ORA_HOME}/bin/emctl start dbconsole" echo "###Done." } stop(){ echo "###Stop database control..." su - ${ORA_OWNER} -c "${ORA_HOME}/bin/emctl stop dbconsole" echo "###Done." echo "###Shutdown Database..." su - ${ORA_OWNER} -c "${ORA_HOME}/bin/dbshut ${ORA_HOME}" echo "###Done." } case "$1" in 'start') start >> ${LOGFILE} ;; 'stop') stop >> ${LOGFILE} ;; 'restart') stop >> ${LOGFILE} start >> ${LOGFILE} ;; esac date +"### %T %a %D: Finished." >> ${LOGFILE} echo "#################################" >> ${LOGFILE} echo ""
使用以下命令將 /etc/init.d/oracle 置爲可執行文件:
chmod a+x /etc/init.d/oracle
至此,可以使用以下命令對oracle進行啓動和關閉
/etc/init.d/oracle start #啓動oracle(包括數據庫實例、監聽器、EM) /etc/init.d/oracle stop #關閉oracle /etc/init.d/oracle restart #重啓oracle
將 oracle 添加到 chkconfig中:
chkconfig --add oracle
可以使用以下命令查看和設置oracle服務的開機啓動級別:
chkconfig | grep oracle #查看oracle服務的開機啓動級別 chkconfig --level 24 oracle off #修改oracle服務的開機啓動級別 chkconfig --level 35 oracle on
至此可以使用以下命令對oracle的啓動或關閉進行管理
service oracle start #啓動 service oracle stop #關閉 service oracle restart #重啓
創建鏈接:
ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle #關機執行 ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle #重啓執行