【DB寶49】Oracle如何設置DB、監聽和EM開機啟動

[toc]

一、Windows系統

Oracle提供了隨操作系統啟動而啟動的功能,在Windows和Linux中,分別有不同的設置方法。

在Windows中,可以修改“我的電腦-->管理-->服務-->OracleService$ORACLE_SID”,或直接使用Win+R鍵打開運行窗口,輸入services.msc即可打開服務,找到相應的Oracle服務,然后將其屬性中的啟動類型修改成自動。一般在Windows系統上安裝完后會自動設置成自動。

image

二、Linux系統

對于Linux/Unix操作系統,如果想設置自動重啟,那么該如何操作呢?對此Oracle提供了dbstart命令用于啟動。

首先,第一步,需要修改/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種辦法:

方法1:配置/etc/rc.d/rc.local文件(推薦)

在配置了/etc/oratab文件后,然后將以下腳本添加到/etc/rc.d/rc.local或/etc/rc.local文件中(/etc/rc.local是/etc/rc.d/rc.local的軟連接文件):

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

該方法需要注意以下問題:
1、若環境中沒有創建EM,則可以不用添加ORACLE_UNQNAME和emctl這2行

2、從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

3、在CentOS 7中,/etc/rc.d/rc.local的權限被降低了,所以需要執行如下命令賦予其可執行權限:

chmod +x /etc/rc.d/rc.local

最后就可以重啟OS做測試工作了。

方法2:配置service服務

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版本

從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種方法,需要注意的幾個問題:

  1. 若有多個實例,那么多個實例都會自動啟動。
  2. 監聽也會自動啟動。
  3. 若數據庫小于18c,則重啟的詳細日志為:$ORACLE_HOME/shutdown.log$ORACLE_HOME/startup.log。從Oracle 18c開始,dbstart的日志文件在$ORACLE_HOME/rdbms/log/startup.log
  4. oracle用戶的環境變量可以不用配置。
  5. ORACLE_UNQNAME的作用是設置EM的環境變量,emctl是啟動OEM,若沒有則可以不用設置。
  6. ORACLE_HOME的作用是設置數據庫監聽的環境變量。
  7. 對于Oracle 10.2.0.1來說,監聽不能自動啟動。需要修改腳本$ORACLE_HOME/bin/dbstart,修改ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle為“ORACLE_HOME_LISTNER=$1
  8. 對于ASM、RAC環境,只需要將數據庫資源注冊到CRS中,即可實現開機啟動。
  9. 從Oracle 18c開始,可以使用腳本/etc/init.d/oracledb_$ORACLE_SID-$ORACLE_VERSION來啟動Oracle數據庫。
  10. 以上方法在Oracle 10g、11g、12cR1(12.1.0.2)、12cR2(12.2.0.1)、18c(12.2.0.2)和19c(12.2.0.3)中測試通過。

About Me


● 本文作者:小麥苗,部分內容整理自網絡,若有侵權請聯系小麥苗刪除
● 本文原始發表于個人微 信公眾號(DB寶)上
● QQ群號: 230161599 、618766405,微信群私聊
● 個人QQ號(646634621),微 信號(db_bao),注明添加緣由
● 版權所有,歡迎分享本文,轉載請保留出處

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,748評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,165評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,595評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,633評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,435評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,943評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,035評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,175評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,713評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,599評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,788評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,303評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,034評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,412評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,664評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,408評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,747評論 2 370

推薦閱讀更多精彩內容