1、簡單配置方式
在Linux系統中,安裝好oracle數據庫服務後,並不像在Windows系統下同樣,oracle服務在默認狀況下會隨時系統的啓動自動啓動。Linux系統中,是須要用戶去手動進行設置,才能實現oracle開機自動啓動的。
一、查詢確認oracle11g後自帶的啓動關閉腳本是否存在
[oracle@db oracle]$ cat /etc/oratab
在此腳本的最後一行會記錄oracle安裝的oracle_home目錄,正常狀況下在$ORACLE_HOME/bin目錄下存在dbstart和dbshut腳本
ls $ORACLE_HOME/bin/dbstart
ls $ORACLE_HOME/bin/dbshut
ls $ORACLE_HOME/bin/lsnrctl
二、打開oracle設置的關卡,須要使用root用戶取修改
[root@db ~]# vi /etc/oratab
改前:ipems:/u01/app/oracle/product/11.2.0/dbhome_1:N
改後:ipems:/u01/app/oracle/product/11.2.0/dbhome_1:Y
三、手動測試各腳本是否可正常啓動,關閉相關服務,使用oracle用戶測試
[root@db ~]# su - oracle
[oracle@db ~]$ /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut
ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener
Usage: /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut ORACLE_HOME
Processing Database instance "ipems": log file /u01/app/oracle/product/11.2.0/dbhome_1/shutdown.log
測試腳本執行報有錯誤,監聽沒有關閉,但oracle數據庫正常關閉了。這個腳本默認要傳入 ORACLE_HOME參數mysql
[oracle@db ~]$ /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart ORACLE_HOME
Processing Database instance "ipems": log file /u01/app/oracle/product/11.2.0/dbhome_1/startup.log
測試腳本執行報有錯誤,監聽沒有啓動,但oracle數據庫正常啓動了。這個腳本默認要傳入 ORACLE_HOME參數
修改兩個腳本中的ORACLE_HOME_LISTNER=$1爲ORACLE_HOME_LISTNER=$ORACLE_HOME,從新實驗,監聽和數據庫能夠正常啓動和關閉
[oracle@db bin]$ /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut
Processing Database instance "ipems": log file /u01/app/oracle/product/11.2.0/dbhome_1/shutdown.log
[oracle@db bin]$ lsnrctl statuslinux
[oracle@db bin]$ /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
Processing Database instance "ipems": log file /u01/app/oracle/product/11.2.0/dbhome_1/startup.log
[oracle@db bin]$ lsnrctl status
四、編輯/etc/rc.d/rc.local文件,調用oracle的啓動關閉文件設置開機自啓動,須要使用root用戶執行
[oracle@db bin]$ su - root
Password:
[root@db ~]# vi /etc/rc.d/rc.localsql
若是命令須要帶參數而有空格時須要用雙引號包圍起來。
五、測試效果
能夠正常開機自啓動shell
2、經過配置oracle服務項,經過chkconfig配置開機自啓動,及命令方式啓動oracle
一、前3個步驟與上述方式一致
二、以root身份創建開機啓動oracle服務的腳本/etc/init.d/oracle
#!/bin/sh
#chkconfig: 35 20 80
#description: Oracle dbstart / dbshut
#以上兩行爲chkconfig所需
ORA_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
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 dbconsole..."
#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 ""數據庫
註釋:
第一行,告訴系統使用的shell,因此的shell腳本都是這樣。
第二行,chkconfig後面有三個參數2345,20和80告訴chkconfig程序,須要在rc3.d和rc5.d目錄下,建立名字爲 S20oracle的文件鏈接,鏈接到/etc/init.d目錄下的的oracle腳本。第一個字符是S,系統在啓動的時候,運行腳本oracle,就會添加一個start參數,告訴腳本,如今是啓動模式。同時在rc0.d和rc6.d目錄下,建立名字爲K80oracle的文件鏈接,第一個字符爲K,系統在關閉系統的時候,會運行oracle,添加一個stop,告訴腳本,如今是關閉模式。
在腳本中經過變量給啓動和關閉腳本傳入了參數,因此默認腳本便可正常使用(不用修改腳本的ORACLE_HOME_LISTNER)oracle
三、設置腳本的可執行權限
[root@db ~]# chmod +x /etc/init.d/oracle
四、手動測試
[root@db ~]# /etc/init.d/oracle start
[root@db ~]# /etc/init.d/oracle stop
[root@db ~]# /etc/init.d/oracle restart
五、將oracle服務添加到chkconfig中
[root@db ~]# chkconfig --add oracle
註釋:
添加完成後能夠在
[root@db ~]# ll /etc/rc.d/rc0.d/K80oracle
lrwxrwxrwx 1 root root 16 Nov 6 12:53 /etc/rc.d/rc0.d/K80oracle -> ../init.d/oracle
[root@db ~]# ll /etc/rc.d/rc6.d/K80oracle
lrwxrwxrwx 1 root root 16 Nov 6 12:53 /etc/rc.d/rc6.d/K80oracle -> ../init.d/oracleapp
[root@db ~]# ll /etc/rc.d/rc3.d/S20oracle
lrwxrwxrwx 1 root root 16 Nov 6 12:54 /etc/rc.d/rc3.d/S20oracle -> ../init.d/oracle
[root@db ~]# ll /etc/rc.d/rc5.d/S20oracle
lrwxrwxrwx 1 root root 16 Nov 6 12:54 /etc/rc.d/rc5.d/S20oracle -> ../init.d/oracle工具
六、能夠手動修改oracle服務開機啓動的級別
[root@db ~]# chkconfig | grep oracle
oracle 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@db ~]# chkconfig --level 24 oracle off
You have mail in /var/spool/mail/root
[root@db ~]# chkconfig | grep oracle
oracle 0:off 1:off 2:off 3:on 4:off 5:on 6:off
[root@db ~]# chkconfig --level 35 oracle on
[root@db ~]# chkconfig | grep oracle
oracle 0:off 1:off 2:off 3:on 4:off 5:on 6:off測試
七、使用簡單明瞭啓動關閉oracle
[root@db ~]# service oracle stop
[root@db ~]# service oracle start
[root@db ~]# su - oracle -c "lsnrctl status"
[root@db ~]# su - oracle -c "sqlplus / as sysdba"操作系統
八、重啓測試
以正常開機自啓動
3、chkconfig命令
Centos6.5系統以前:
1.chkconfig命令用法
語法:
chkconfig --list [name]
chkconfig --add name
chkconfig --del name
chkconfig [--level levels] name <on|off|reset>
chkconfig [--level levels] name
說明:
chkconfig提供一種簡單的命令行工具來幫助管理員對/etc/rc[0-6].d目錄層次下的衆多的符號連接進行直接操做。
此命令使用是由chkconfig命令在IRIX操做系統提供受權。不用在/etc/rc[0-6].d目錄下直接維護配置信息,而是直接在/etc/rc[0-6]下管理連接文件。在運行級別的目錄下的配置信息通知在將會初始啓動哪些服務。
Centos7:
#關閉默認初始化的數據庫
systemctl stop mysqld.service
#啓動
systemctl start mysqld@3306
#取消默認實例的開機自啓動
systemctl disable mysqld
#將自定義實例加入開機自啓動
systemctl enable mysqld@3306
linux自定義開機啓動服務和chkconfig使用方法 服務概述 在linux操做系統下,常常須要建立一些服務,這些服務被作成shell腳本,這些服務須要在系統啓動的時候自動啓動,關閉的時候自動關閉。 將須要自動啓動的腳本/etc/rc.d/init.d目錄下,而後用命令chkconfig --add filename將自動註冊開機啓動和關機關閉。實質就是在rc0.d-rc6.d目錄下生成一些文件鏈接,這些鏈接鏈接到/etc/rc.d /init.d目錄下指定文件的shell腳本。