本文詳細介紹在 Linux 系統下將 Oracle 資料庫安裝為系統服務的兩種方法,包含使用 Oracle 內建腳本與自建腳本的完整步驟、參數說明與驗證方式。
以 Oracle 用戶編輯 /etc/oratab,將預設的 N 改為 Y,允許系統啟動時自動執行 dbstart 啟動資料庫:
orcl:/Oracle/app/product/10.2.0/db_1:Y
找到 ORACLE_HOME_LISTNER 參數,修正為實際的 Oracle Home 路徑,例如:
ORACLE_HOME_LISTNER=$ORACLE_HOME
su - oracle cd $ORACLE_HOME/bin ./dbstart # 啟動資料庫與監聽 ps -efw | grep ora_ lsnrctl status ./dbshut # 關閉資料庫(監聽需手動停止)
su - root cd $ORACLE_HOME chown oracle:oinstall startup.log shutdown.log
在 /etc/rc.d/init.d/ 建立 oracle 腳本,設定 chkconfig: 345 80 10(運行等級 3/4/5,啟動優先級 80,關閉優先級 10),並配置環境變數。提供兩種腳本範本:
chown oracle:oinstall /etc/rc.d/init.d/oracle chmod 775 /etc/rc.d/init.d/oracle chkconfig --add oracle chkconfig --level 345 oracle on chkconfig --list oracle # 預期輸出:Oracle 0:off 1:off 2:off 3:on 4:on 5:on 6:off
檢查 /etc/rc.d/rc5.d/S99oradbstart 為指向 init.d/oracle 的符號連結,即配置成功。之後可用 service oracle start/stop 手動控制。
mkdir -p /home/oracle/bin cd /home/oracle/bin vi startora # 內容: sqlplus /nolog << EOF connect / as sysdba startup exit exit echo "Oracle start ok!" vi stopora # 內容: sqlplus /nolog << EOF connect / as sysdba shutdown immediate exit exit echo "Oracle shutdown ok!" chown oracle:oinstall startora stopora chmod 775 startora stopora
在 /etc/rc.d/init.d/oracle 撰寫服務腳本,引用上述 startora/stopora 並啟動監聽,同樣設定 chkconfig 參數,完成權限設定與 chkconfig --add 註冊。
chkconfig: 345 99 10:3/4/5 等級啟動,S99 為啟動順序,K10 為關閉順序ps -efw | grep LISTEN | grep -v grep:查看監聽進程,排除 grep 本身依照上述步驟,即可實現 Oracle 在 Linux 開機自動啟動與服務化管理。