12/17/2007

利用Linux服务自动启动Oracle

利用Linux服务自动启动Oracle

1. 更改/etc/oratab
ryan:/u01/app/oracle/product/9.2.0:Y (把原来的N改为Y)

2. 增加Linux服务(名称为oracle9i)
2.1 cd /etc/rc.d/init.d/
touch oracle9i
chmod a+x oracle9i
2.2 vi oracle9i 并输入以下内容:
more /etc/rc.d/init.d/oracle9i
# !/bin/bash
# whoami
# root
# chkconfig: 345 51 49
# description: starts the oracle dabase deamons
#
ORA_HOME=/opt/ora9/product/9.2.0
ORA_OWNER=oracle
case "$1" in
'start')
echo -n "Starting oracle9i: "
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" &
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" &
su - $ORA_OWNER -c "$ORA_HOME/Apache/Apache/bin/apachectl start"
touch /var/lock/subsys/oracle9i
echo
;;

'stop')
echo -n "shutting down oracle9i: "
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" &
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" &
su - $ORA_OWNER -c "$ORA_HOME/Apache/Apache/bin/apachectl stop"
rm -f /var/lock/subsys/oracle9i
echo
;;

'restart')
echo -n "restarting oracle9i: "
$0 stop
$0 start
echo
;;
*)
echo "usage: oracle9i { start stop restart }"
exit 1

esac
exit 0



2.3 设定oracle9i服务的启动级别
cd /etc/rc.d/init.d/
chkconfig --add oracle9i
chkconfig --list oracle9i
oracle9i 0:off 1:off 2:off 3:on 4:on 5:on 6:off


2.4 测试服务
/etc/rc.d/init.d/oracle9i start
/etc/rc.d/init.d/oracle9i stop


3. 重启linux
reboot -n
在linux启动的时候,你就可以看到一个启动项oracle9i,出现[OK]的时候,就表示你的数据库随系统启动了。

3.1 重启Linux后,查看进程
ps -efgrep ora_grep -v grep
ps -efgrep tnslsnrgrep -v grep

3.2 sqlplus测试
sqlplus '/as sysdba'

tips:
因为oracle本身脚本的bug导致启动oracle服务的时候会报一个Can't find init file for Database "SID"的错误
解决方法:cp /opt/ora9/admin/Ryan/pfile/initRyan.ora.* $ORACLE_HOME/dbs/initRyan.ora

No comments: