[toc]sql
Oracle提供了隨操做系統啓動而啓動的功能,在Windows和Linux中,分別有不一樣的設置方法。數據庫
在Windows中,能夠修改「個人電腦-->管理-->服務-->OracleService$ORACLE_SID」,或直接使用Win+R鍵打開運行窗口,輸入services.msc便可打開服務,找到相應的Oracle服務,而後將其屬性中的啓動類型修改爲自動。通常在Windows系統上安裝完後會自動設置成自動。vim
對於Linux/Unix操做系統,若是想設置自動重啓,那麼該如何操做呢?對此Oracle提供了dbstart命令用於啓動。bash
首先,第一步,須要修改/etc/oratab
文件,將N修改成Y微信
[root@oracle ~]# vim /etc/oratab LHR11G:/u01/app/oracle/product/11.2.0.4/dbhome_1:Y #將N改成Y
文件/etc/oratab
由root.sh腳本建立,在用dbca命令建立實例時也會更新這個文件。當$ORACLE_SID:$ORACLE_HOME:<N|Y>
設置爲Y時,容許實例自啓動,當設置爲N時,則不容許自啓動。這個文件裏的配置僅僅起一個開關的做用,其並不會具體的執行啓動和關閉,具體的操做由$ORACLE_HOME/bin/dbstart
和dbshut腳原本實現。這2個腳本在執行時會檢查/etc/oratab
文件裏的配置,爲Y時才能繼續執行。網絡
接下來須要配置開機啓動文件,有2種辦法:oracle
在配置了/etc/oratab
文件後,而後將如下腳本添加到/etc/rc.d/rc.local或/etc/rc.local文件中(/etc/rc.local是/etc/rc.d/rc.local的軟鏈接文件):app
cat >> /etc/rc.d/rc.local <<"EOF" # 重啓DB export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1 su oracle -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" # 重啓EM export ORACLE_UNQNAME=LHR11G su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole" EOF
該方法須要注意如下問題:
一、若環境中沒有建立EM,則能夠不用添加ORACLE_UNQNAME和emctl這2行ide
二、從Oracle 12c開始,因爲EMDE(Enterprise Manager Database Express)替代了原有的EMDC(Enterprise Manager Database Control),因此,再也不單獨設置EM相關內容,只須要配置DB便可,例如:測試
cat >> /etc/rc.d/rc.local <<"EOF" # 重啓DB export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1 su oracle -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" EOF
三、在CentOS 7中,/etc/rc.d/rc.local的權限被下降了,因此須要執行以下命令賦予其可執行權限:
chmod +x /etc/rc.d/rc.local
最後就能夠重啓OS作測試工做了。
1. 創建啓動腳本
使用root用戶建立腳本/etc/rc.d/init.d/oracle
,腳本內容以下,注意修改第6-9行的相關內容:
#!/bin/bash # chkconfig: 2345 99 10 # description: Startup Script for oracle Databases # /etc/rc.d/init.d/oracle export ORACLE_BASE=/u01/app/oracle/ export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1 export PATH=$PATH:$ORACLE_HOME/bin export ORACLE_UNQNAME=LHR11G echo " " >> /var/log/oraclelog echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog case "$1" in start) echo "-----startup oracle-----" >> /var/log/oraclelog su oracle -c "$ORACLE_HOME/bin/dbstart" su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole" touch /var/lock/subsys/oracle echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog echo "-----startup oracle successful-----" >> /var/log/oraclelog echo "OK" ;; stop) echo "-----shutdown oracle-----" >> /var/log/oraclelog su oracle -c "$ORACLE_HOME/bin/dbshut" su oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole" rm -f /var/lock/subsys/oracle echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelogg echo "-----shutdown oracle successful-----" >> /var/log/oraclelog echo "OK" ;; restart) echo "-----shutdown oracle-----" >> /var/log/oraclelog su oracle -c "$ORACLE_HOME/bin/dbshut" su oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole" rm -f /var/lock/subsys/oracle echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog echo "-----shutdown oracle successful-----" >> /var/log/oraclelog echo "-----startup oracle-----" >> /var/log/oraclelog su oracle -c "$ORACLE_HOME/bin/dbstart" su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole" touch /var/lock/subsys/oracle echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog echo "-----startup oracle successful-----" >> /var/log/oraclelog echo "OK" ;; *) echo "Usage: 'basename $0' start|stop|restart" exit 1 esac exit 0
2. 給腳本設置權限
[root@oracle ~]# chmod 755 /etc/rc.d/init.d/oracle
3.創建服務
[root@oracle ~]# chkconfig --add oracle [root@oracle ~]# chkconfig oracle on [root@oracle ~]# chkconfig --list oracle oracle 0:off 1:off 2:on 3:on 4:on 5:on 6:off
4.檢查是否生效
先使用root用戶測試服務是否生效:
[root@oracle ~]# service oracle stop [root@oracle ~]# service oracle start [root@oracle ~]# service oracle restart
再重啓OS,驗證是否生效。
從Oracle 18c開始,對於單機環境來講,可使用rpm包來直接安裝Oracle軟件,在安裝完成後,會生成一個腳本,相似/etc/init.d/oracledb_$ORACLE_SID-$ORACLE_VERSION
,該腳本能夠用來啓動和關閉Oracle軟件,因此也可使用該腳原本直接配置開機啓動:
cat >> /etc/rc.d/rc.local <<"EOF" /etc/init.d/oracledb_ORCLCDB-18c start /etc/init.d/oracledb_lhrsdb-18c start EOF chmod +x /etc/rc.d/rc.local
重啓OS,測試經過。
對於這2種方法,須要注意的幾個問題:
$ORACLE_HOME/shutdown.log
和$ORACLE_HOME/startup.log
。從Oracle 18c開始,dbstart的日誌文件在$ORACLE_HOME/rdbms/log/startup.log
ORACLE_UNQNAME
的做用是設置EM的環境變量,emctl是啓動OEM,若沒有則能夠不用設置。ORACLE_HOME
的做用是設置數據庫監聽的環境變量。$ORACLE_HOME/bin/dbstart
,修改ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
爲「ORACLE_HOME_LISTNER=$1
」/etc/init.d/oracledb_$ORACLE_SID-$ORACLE_VERSION
來啓動Oracle數據庫。About Me
● 本文做者:小麥苗,部份內容整理自網絡,如有侵權請聯繫小麥苗刪除
● 本文原始發表於我的微 信公衆號(DB寶)上● QQ羣號: 230161599 、618766405,微信羣私聊 ● 我的QQ號(646634621),微 信號(db_bao),註明添加原因● 版權全部,歡迎分享本文,轉載請保留出處