2009年12月11日 星期五

開機時自動執行ORACLE11GR2

1. 建立一個稱為oracledb的Shell Script,讓開機的時候自動執行它

[root@localhost bin]# pwd
/u01/app/oracle/product/11.2.0/dbhome_1/bin
[root@localhost bin]$ vi oracledb

2.檔案內容如下:

#!/bin/bash
export JAVA_HOME=/opt/jdk1.6.0_17
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

(筆者: ORACLE_HOME 應改用絕對路徑, 用變數表是似乎不會正確執行SCRIPT)

export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_OWNR=oracle

#NLS_LANG=”TRADITIONAL CHINESE_TAIWAN”.ZHT16BIG5;export NLS_LANG
export NLS_LANG
#LC_CTYPE=zh_TW.Big5; export LC_CTYPE
export LC_CTYPE
#LC_ALL=zh_TW.UTF8; export LC_ALL
export LC_ALL
#LANG=zh_TW.Big5; export LANG
export LANG

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$JAVA_HOME/bin:$ORACLE_HOME/bin:$PATH:$HOME/bin

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then

echo “Oracle startup: cannot start”
exit 1
fi

case “$1″ in
start)
# Oracle listener and instance startup
echo -n “Starting Oracle: “
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/lsnrctl start”
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/dbstart $ORACLE_HOME”
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/emctl start dbconsole”

su oracle -c “/u01/app/oracle/product/11.2.0/dbhome_1/bin/emctl start dbconsole”

touch /var/lock/oracle
echo “OK”
;;
stop)
# Oracle listener and instance shutdown

echo -n “Shutdown Oracle: “
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/lsnrctl stop”
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/dbshut $ORACLE_HOME”
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/emctl stop dbconsole”
rm -f /var/lock/oracle
echo “OK”
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo “Usage: `basename $0` start|stop|restart|reload”
exit 1
esac

exit 0

3.執行這程式

[root@localhost bin]# ./oracledb start
(如果執行不成功, 請檢查設置路徑地方是否正確)

4.看一下記憶體中oracle相關程序

[root@oracle db_1]# ps aux | grep oracle

5.編輯開機自動執行設定檔/etc/rc.local

root@lu-desktop:~# vi /etc/rc.local

加入一行

/u01/app/oracle/product/11.2.0/dbhome_1/bin/oracledb start

然後重新啟動 (在全藍色畫面會花些時間)

編輯 /etc/oratab,
將 orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N
改成 orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y
(改成Y)
代碼:
root@lu-desktop:~# reboot

再用ps aux | grep oracle檢查

代碼:
[root@oracle db_1]# ps aux | grep oracle

如果有出現類似下面的訊息,表示emctl仍在啟動中 ,請再等等

代碼:
root 5688 0.3 0.1 4888 1232 ? S 09:49 0:00 su oracle -c /u01/app/oracle/product/11.1.0/db_1/bin/emctl start dbconsole
oracle 5689 11.3 0.1 4484 1224 ? Ss 09:49 0:00 /bin/sh -f /u01/app/oracle/product/11.1.0/db_1/bin/emctl start dbconsole
oracle 6101 0.0 0.2 6072 2396 ? R 09:49 0:00 /u01/app/oracle/product/11.1.0/db_1/perl/bin/perl /u01/app/oracle/product/11.1.0/db_1/bin/emctl.pl start dbconsole

確認啟動完成後,再用瀏覽器連到 Oracle 的管理介面看看

代碼:

[root@oracle db_1]# firefox https://localhost:1158/em &

沒有留言: