Linux下的Oracle啟動腳本及其開機(jī)自啟動
說明:以下操作環(huán)境在CentOS 6.4 + Oracle 11gR2(Oracle安裝在ORACLE_BASE=/opt/oracle中,其ORACLE_HOME=/opt/oracle/11g)
用OUI安裝并配置Oracle數(shù)據(jù)庫后,Oracle就開啟了(包括:數(shù)據(jù)庫實(shí)例、監(jiān)聽器、EM)。在重啟操作系統(tǒng)之后,Oracle默認(rèn)是沒有啟動的。使用如下命令查看Oracle相關(guān)服務(wù)是否已啟動:
ps aux | grep ora_ #若無ora_**_**相關(guān)的進(jìn)程,則oracle數(shù)據(jù)庫實(shí)例未啟動
netstat -tlnup | grep 1521 #若無任何顯示,則監(jiān)聽器未啟動
lsnrctl status #查看監(jiān)聽器狀態(tài)
netstat -tlnup | grep 1158 #若無任何顯示,則EM未啟動
emctl status dbconsole #查看EM狀態(tài)
手工啟動Oracle實(shí)例,可用sqlplus建立一個(gè)idle instance,然后再用startup啟動,如下:
數(shù)據(jù)庫實(shí)例啟動之后,需啟動監(jiān)聽器,才能讓遠(yuǎn)程用戶建立連接??墒褂萌缦旅顔颖O(jiān)聽器:
lsnrctl start
Oracle還提供網(wǎng)頁版的管理器,要使用該管理器需啟動相關(guān)服務(wù),使用如下命令啟動:
emctl start dbconsole
至此,可在web瀏覽器中輸入:https://{主機(jī)IP 或 主機(jī)名 或 本地localhost}:1158/em,打開管理器,使用相關(guān)帳號登錄進(jìn)行數(shù)據(jù)庫查看和管理。
如果每次重啟操作系統(tǒng)都要進(jìn)行以上操作好麻煩,那么如何讓Oracle作為系統(tǒng)服務(wù)在開機(jī)的時(shí)候自動啟動呢?
Oracle在$ORACLE_HOME/bin下提供許多對數(shù)據(jù)庫進(jìn)行操作的腳本,其中dbstart和dbshut可分別用來啟動和關(guān)閉數(shù)據(jù)庫。注意,這兩個(gè)腳本已包含監(jiān)聽器的啟動或關(guān)閉,但并未對EM進(jìn)行相關(guān)的操作。使用如下命令:
/opt/oracle/11g/bin/dbstart /opt/oracle/11g #啟動數(shù)據(jù)庫實(shí)例(包含監(jiān)聽器)
/opt/oracle/11g/bin/dbshut /opt/oracle/11g #關(guān)閉數(shù)據(jù)庫實(shí)例(包括監(jiān)聽器)
以上命令要成功啟動數(shù)據(jù)庫實(shí)例還得打開Oracle設(shè)置的一個(gè)關(guān)卡:vi /etc/oratab,修改行:
orcl:/opt/oracle/11g:Y #默認(rèn)為orcl:/opt/oracle/11g:N
以root身份建立開機(jī)啟動oracle服務(wù)的腳本:vi /etc/init.d/oracle,添加如下腳本:
#!/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 置為可執(zhí)行文件:
chmod a+x /etc/init.d/oracle
至此,可使用如下命令對oracle進(jìn)行啟動和關(guān)閉
/etc/init.d/oracle start #啟動oracle(包括數(shù)據(jù)庫實(shí)例、監(jiān)聽器、EM)
/etc/init.d/oracle stop #關(guān)閉oracle
/etc/init.d/oracle restart #重啟oracle
將 oracle 添加到 chkconfig中:
chkconfig --add oracle
可使用如下命令查看和設(shè)置oracle服務(wù)的開機(jī)啟動級別:
chkconfig | grep oracle #查看oracle服務(wù)的開機(jī)啟動級別
chkconfig --level 24 oracle off #修改oracle服務(wù)的開機(jī)啟動級別
chkconfig --level 35 oracle on
至此可使用如下命令對oracle的啟動或關(guān)閉進(jìn)行管理
service oracle start #啟動
service oracle stop #關(guān)閉
service oracle restart #重啟
建立連接:
ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle #關(guān)機(jī)執(zhí)行
ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle #重啟執(zhí)行
- linux下oracle設(shè)置開機(jī)自啟動實(shí)現(xiàn)方法
- Linux系統(tǒng)下Oracle數(shù)據(jù)庫的安裝和啟動關(guān)閉操作教程
- 詳解Linux系統(tǒng)中Oracle數(shù)據(jù)庫程序的啟動和關(guān)閉方式
- Linux下啟動Oracle服務(wù)和監(jiān)聽程序步驟
- linux服務(wù)器開機(jī)啟動oracle的設(shè)置方法
- Linux環(huán)境下重啟Oracle數(shù)據(jù)庫詳細(xì)圖文教程
- Linux系統(tǒng)下Oracle數(shù)據(jù)庫監(jiān)聽啟動關(guān)閉命令詳解
- Linux下如何啟動Oracle命令
- Linux系統(tǒng)下啟動/關(guān)閉Oracle數(shù)據(jù)庫
相關(guān)文章
PL/SQL中編寫Oracle數(shù)據(jù)庫分頁的存儲過程
這篇文章主要介紹了 PL/SQL中編寫Oracle數(shù)據(jù)庫分頁的存儲過程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06
Oracle將字符編碼從GBK轉(zhuǎn)到UTF8,如何操作比較穩(wěn)妥?
有個(gè)學(xué)校oracle數(shù)據(jù)庫的編碼是GBK,而且?guī)炖镞呉呀?jīng)有很多生產(chǎn)數(shù)據(jù)了,現(xiàn)在想改成UTF8的,如果執(zhí)行了這步操作,會出現(xiàn)哪些問題2014-02-02
oracle 11g的安裝注意事項(xiàng)總結(jié)
這篇文章主要給大家介紹了關(guān)于oracle 11g的安裝注意事項(xiàng),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Oracle分區(qū)表超詳細(xì)講解(Oracle?Partitioned?Tables)
這篇文章主要給大家介紹了掛不同意Oracle分區(qū)表超詳細(xì)講解(Oracle?Partitioned?Tables)的相關(guān)資料,ORACLE的分區(qū)是一種處理超大型表、索引等的技術(shù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
Oracle7.X 回滾表空間數(shù)據(jù)文件誤刪除處理方法
Oracle7.X 回滾表空間數(shù)據(jù)文件誤刪除處理方法...2007-03-03
Oracle查詢優(yōu)化之高效實(shí)現(xiàn)僅查詢前10條記錄的方法與實(shí)踐
這篇文章主要介紹了Oracle查詢優(yōu)化之高效實(shí)現(xiàn)僅查詢前10條記錄的相關(guān)資料,包括使用ROWNUM、ROW_NUMBER()函數(shù)、FETCH?FIRST(適用于Oracle12c及以上版本)以及LIMIT風(fēng)格(僅適用于兼容模式),需要的朋友可以參考下2025-01-01
Oracle計(jì)算年齡的實(shí)用方法總結(jié)
這篇文章主要給大家介紹了關(guān)于Oracle計(jì)算年齡的相關(guān)資料,在我們?nèi)粘?shí)際業(yè)務(wù)中,可能需要根據(jù)某人出生日期、身份證號碼來實(shí)時(shí)計(jì)算年齡,需要的朋友可以參考下2023-09-09

