1、配置dbstart、dbstart为系统服务(有详细的日志可检查)
a、修改/etc/oratab文件,将auto域设置为Y
tom:/home/app/oracle/product/10.2.0.1:Y
b、编辑注册服务使用的文件/etc/rc.d/init.d/oracle
#chkconfig:2345 99 01
#description:Oracle Server
#/etc/rc.d/init.d/oracle
#........ Oracle ........
#..........
case "$1" in
start)
echo -n "Starting Oracle Databases: "
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
su - oracle -c dbstart >> /var/log/oracle
echo "Done."
echo -n "Starting Oracle Listeners: "
su - oracle -c "lsnrctl start" >> /var/log/oracle
echo "Done."
echo ""
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
stop)
echo -n "Shutting Down Oracle Listeners: "
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
su - oracle -c "lsnrctl stop" >> /var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle
echo -n "Shutting Down Oracle Databases: "
su - oracle -c dbshut >> /var/log/oracle
echo "Done."
echo ""
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
;;
restart)
echo -n "Restarting Oracle Databases: "
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
su - oracle -c dbstop >> /var/log/oracle
su - oracle -c dbstart >> /var/log/oracle
echo "Done."
echo -n "Restarting Oracle Listeners: "
su - oracle -c "lsnrctl stop" >> /var/log/oracle
su - oracle -c "lsnrctl start" >> /var/log/oracle
echo "Done."
echo ""
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
*)
echo "Usage: oracle {start|stop|restart}"
exit 1
esac
c、修改权限,配置各运行级别的符号链接并增加到系统服务
chown oracle.oinstll /etc/rc.d/init.d/oracle
chmod 755 /etc/rc.d/init.d/oracle
在正确的执行等级目录(runlevel directories) /etc/rc.d/rcX.d 中建立及删除符号连结,以确保在等级2, 3 , 4, 5 下启动DB
ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle
ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle
ln -s ../init.d/oracle /etc/rc.d/rc4.d/S99oracle
ln -s ../init.d/oracle /etc/rc.d/rc5.d/S99oracle
ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle # 停止
ln -s ../init.d/oracle /etc/rc.d/rc1.d/K01oracle # 停止
ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle # 重新启动
chkconfig --add /etc/rc.d/init.d/oracle 把oracle service添加到服务里
chkconfig --list oracle
oracle 0:关闭 1:关闭 2:关闭 3:开启 4:开启 5:开启 6:关闭
d、查看日志
/var/log/oracle
$ORACLE_HOME/startup.log;$ORACLE_HOME/shutdown.log;
e、使用:
1) 系统关闭和启动时调用dbshut 和dbstart启动和关闭数据库和监听;
2) Service oracle stop|start|restart
2、linux下系统开机oracle自启动
$su - root
1、linux下oracle自带的dbstart和dbshut没反应: 修改Oracle系统配置文件/etc/oratab文件: #vi /etc/oratab
/etc/oratab 格式为: SID:ORACLE_HOME:AUTO
把AUTO域设置为Y(大写),我的为:
oradb:/opt/u01/app/oracle/product/9.2.0.4:Y
只有这样,oracle 自带的dbstart和dbshut才能够发挥作用。
2、修改/etc/rc.d/rc.local配置文件
在/etc/rc.d/rc.local中加入如下内容: #vi /etc/rc.d/rc.local
su - oracle -c "/u01/app/oracle/product/9.2.0.4/bin/lsnrctl start"
su - oracle -c "/u01/app/oracle/product/9.2.0.4/bin/dbstart start"
3、重新启动
#reboot
4、连接测试(以oracle身份登录)