Debian配置Oracle 10g自啟動

rongshiyuan發表於2012-09-01

Debian配置Oracle 10g自啟動

linux平臺下預設安裝的oracle 10g資料庫是沒有啟動而且不會隨系統自動啟動的。

配置oracle 10g資料庫自啟動的步驟如下:

1、配置/etc/oratab 檔案

oratab檔案中項的格式為
$ORACLE_SID:$ORACLE_HOME:N|Y
每個$ORACLE_SID只能有一個項
預設安裝後,入口項的最後是N,將N修改為Y,使其可以通過dbstart工具啟動

2、配置$Oracle_HOME/bin/dbstart檔案

將dbstart檔案中大約78行的ORACLE_HOME_LISTNER變數的值修改為$ORACLE_HOME所在的路徑,此處為
ORACLE_HOME_LISTNER=/u01/app/oracle/product/10.2.0/db_1

3、執行dbstart,dbshut測試資料庫是否正確啟動和關閉

以oracle使用者登陸,執行以下命令進行測試

$ dbstart
$ ps aux | grep ora_
$ ps aux | grep LISTEN
$ lsnrctl status
$ dbshut

資料庫啟動的日誌檔案為$ORACLE_HOME/startup.log,關閉的日誌檔案為$ORACLE_HOME/shutdown.log,監聽器的日誌檔案$ORACLE_HOME/listener.log

4、建立啟動init指令碼

以root使用者在/etc/init.d目錄下建立檔案oracle,其內容如下

 1 #!/bin/sh
 2 
 3 ### BEGIN INIT INFO
 4 # Provides: oracle
 5 # Required-Start: $local_fs
 6 # Required-Stop: $local_fs
 7 # Default-Start: 2 3 4 5
 8 # Default-Stop: 0 1 6
 9 # Short-Description:oracle database init script
10 # Description: starts and stops oracle database and listeners
11 ### END INIT INFO
12 
13 set-e
14 
15 ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1"
16 ORACLE_OWNER="oracle"
17 
18 do_start() {
19     echo"starting oracle databases..."
20     su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" >> /var/log/oracle
21     touch /var/lock/oracle
22     echo"ok"
23 }
24 
25 do_stop() {
26     echo"Stopping oracle databases..."
27     su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" >> /var/log/oracle
28     rm -f /var/lock/oracle
29     echo"ok"
30 }
31 
32 status() {
33     if [ -f /var/lock/oracle ]; then
34         echo"oracle database is running."
35     else
36         echo"oracle database is not running."
37     fi
38 }
39 
40 case "$1" in
41     start)
42         do_start
43         ;;
44     stop)
45         do_stop
46         ;;
47     restart)
48         do_stop
49         do_start
50         ;;
51     reload)
52         ;;
53     force-reload)
54         ;;
55     status)
56         status
57         ;;
58     *)
59         echo"$0 {start|stop|restart|reload|force-reload|status}"
60 esac
61 
62 exit 0

然後在各個執行級對應的啟動指令碼目錄下建立符號連線
#update-rc.d oracle defaults

還有一點,因為init指令碼是用su切換到oracle使用者執行資料庫啟動和關閉的,所以為了設定使用者資源限制,需要為/etc/pam.d/su檔案增添下面的行
session required pam_limits.so

配置完畢後,oracle資料庫會隨系統自動啟動和關閉,手工控制以debian常見的方式進行

#/etc/init.d/oracle start|stop|status|restart

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

相關文章