Oracle Linux配置開機自啓動

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腳本。

相關文章
相關標籤/搜索