oracle配置開機自啟動

a960549548發表於2024-03-05

Oracle $ORACLE_HOME/bin 下提供許多對資料庫進行操作的指令碼,其中 dbstart dbshut 可分別用來啟動和關閉資料庫。注意,這兩個指令碼已包含監聽器的啟動或關閉,但並未對 EM 進行相關的操作。使用如下命令:

/oracle/product/11.2.0/db_1/bin/dbstart   /oracle/product/11.2.0/db_1 #啟動資料庫例項(包含監聽器)
/oracle/product/11.2.0/db_1/bin/dbshut /oracle/product/11.2.0/db_1   #關閉資料庫例項(包括監聽器)


以上命令要成功啟動資料庫例項還得開啟 Oracle 設定的一個關卡: vi /etc/oratab ,修改行:

orcl:/oracle/product/11.2.0/db_1:
Y
 #
預設為
orcl:/oracle/product/11.2.0/db_1:N


這時候用命令啟動會報 ORACLE_HOME_LISTNER 沒有設定

[oracle@primary bin]$  /oracle/product/11.2.0/db_1/bin/dbstart  /oracle/product/11.2.0/db_1
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener

修改 dbstart dbshut

dbstart修改前
# First   argument is used to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=$1
if [ !   $ORACLE_HOME_LISTNER ] ; then
  echo "ORACLE_HOME_LISTNER is not SET,   unable to auto-start Oracle Net Listener"
  echo "Usage: $0 ORACLE_HOME"
else
  LOG=$ORACLE_HOME_LISTNER/listener.log
  
dbstart修改後    
# First   argument is used to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=/u01/app/oracle/product/11.2.0/db_1                                   
  //   --/u01/app/oracle/product/11.2.0/db_1為$ORACLE_HOME
if [ !   $ORACLE_HOME_LISTNER ] ; then
  echo "ORACLE_HOME_LISTNER is not SET,   unable to auto-start Oracle Net Listener"
  echo "Usage: $0 ORACLE_HOME"
else
  LOG=$ORACLE_HOME_LISTNER/listener.log


同理 dbshut 也做相應修改

在啟動了 Linux 系統之後,轉到 /etc/init.d 目錄下;

[root@oracle ~]# cd /etc/init.d


使用 vi 命令,新建一個以 oracle 命名的檔案(並將以下程式碼複製至檔案中)

[root@oracle init.d]# vi oracle


#!/bin/sh
#   chkconfig: 345 61 61
#   description: Oracle 11g AutoRun Services
#   /etc/init.d/oracle
#
#   Run-level Startup script for the Oracle Instance, Listener, and
# Web   Interface
 
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=ddhldata
export PATH=$ORACLE_HOME/bin:$PATH
 
ORA_OWNR="oracle"
 
# if   the executables do not exist -- display error
 
if [ !   -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
     echo "Oracle startup: cannot   start"
     exit 1
fi
 
#   depending on parameter -- startup, shutdown, restart
# of   the instance and listener or usage display
 
case   "$1" in
 start)
     # Oracle listener and instance startup
     su $ORA_OWNR -lc   $ORACLE_HOME/bin/dbstart
     echo "Oracle Start   Succesful!OK."
     ;;
 stop)
     # Oracle listener and instance shutdown
     su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
     echo "Oracle Stop   Succesful!OK."
     ;;
 reload|restart)
     $0 stop
     $0 start
     ;;
 *)
     echo $"Usage: `basename $0`   {start|stop|reload|reload}"
     exit 1
esac
exit 0


在編輯完成之後,使用 :x 命令儲存此檔案。

賦予執行許可權

[root@oracle init.d]# chmod 750 /etc/init.d/oracle


做一個連結 :

[root@oracle init.d]# ln -s /etc/init.d/oracle /etc/rc1.d/K61oracle
 
[root@oracle init.d]# ln -s /etc/init.d/oracle /etc/rc3.d/S61oracle

執行以下命令 :

[root@oracle init.d]# chkconfig --level 345 oracle on
 
[root@oracle init.d]# chkconfig --add oracle         //新增到服務裡



來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70013625/viewspace-3008126/,如需轉載,請註明出處,否則將追究法律責任。

相關文章