利用Linux服务自动启动Oracle
1. 更改/etc/oratab
testa:/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=/u01/app/oracle/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"
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"
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 -ef|grep ora_|grep -v grep
ps -ef|grep tnslsnr|grep -v grep
3.2 sqlplus测试
sqlplus '/as sysdba'
配置完后别的都OK了,但是start服务后db老是起不来,后来发现
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" 这个命令单独执行也是执行失败的,查看dbstart脚本,发现它会去指定pfile文件,默认是init${ORACLE_SID}.ora,然后到我们系统的${ORA_HOME}/dbs/下面去查看,发现我们的应用数据库的init文件是被我们的系统工程师给指定的,名称并不叫initxxx.ora,然后cp了这个文件,name是initxxx.ora。再次执行su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart成功。