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