1.设置允许ORACLE系统自动启动
root用户下修改/etc/oratab文件
vim /etc/oratab
原数据
修改后的数据,保存退出即可
2.切换oracle用户设置两个文件
su - oracle
修改$ORACLE_HOME/bin/dbstart文件
vim $ORACLE_HOME/bin/dbstart
打开文件后找到箭头所指的那行,将ORACLE_HOME_LISTNER=
ORACLE_HOME. 保存退出即可
修改$ORACLE_HOME/bin/dbshut文件
vim $ORACLE_HOME/bin/dbshut
打开文件后找到箭头所指的那行,将ORACLE_HOME_LISTNER=
ORACLE_HOME. 保存退出即可
3.写一个脚本,注册成一个系统服务,让它在开机与关机的时候运行,作用就是调用并执行dbstart和dbshu
root用户在/etc/init.d目录下创建一个脚本. 我创建的名称是oracle_auto
vi /etc/init.d/oracle_auto
执行这个命令时里面什么都没有,把下面的这些命令写进去.保存退出即可
#!/bin/bash
# chkconfig: 2345 99 01
# description:Startup Script for oracle Databases
#/etc/rc.d/init.d/oracle_auto
ORACLE_HOME=/home/u01/app/oracle/product/11.2.0/dbhome_1
###显示打印日志的时间
DATE=`date "+%Y-%m-%d %H:%M:%S"`
if [ ! -f $ORACLE_HOME/bin/dbstart ]
then
echo "-----oracle cannot start-----"
exit
fi
if [ ! -f $ORACLE_HOME/bin/lsnrctl]
then
echo "-----lsnrctl cannot start-----"
exit
fi
case "$1" in
'start')
echo "-----startup oracle-----">> /var/log/oraclelog.log
su - oracle -c "$ORACLE_HOME/bin/dbstart"
touch /var/lock/subsys/oracle_auto
echo "-----startup oracle successful-----">> /var/log/oraclelog.log
echo "${DATE}">> /var/log/oraclelog.log
echo "OK"
;;
'stop')
echo "-----shutdown oracle-----">> /var/log/oraclelog.log
su - oracle -c "$ORACLE_HOME/bin/dbshut"
rm -f /var/lock/subsys/oracle_auto
echo "-----shutdown oracle successful-----">> /var/log/oraclelog.log
echo "${DATE}">> /var/log/oraclelog.log
echo "OK"
;;
reload|restart)
$0 stop
$1 start
;;
*)
echo "usage:'basename $0' start|stop|reload|restart"
exit 1
esac
exit 0
给脚本分配可以被执行的权限
chown oracle /etc/init.d/oracle_auto
chmod 775 /etc/init.d/oracle_auto
验证脚本是否设置成功
service oracle_auto start
查看log,有信心代表设置成功
扫描二维码关注公众号,回复:
10006241 查看本文章
cat /var/log/oraclelog.log
让脚本随系统自动启动
chkconfig oracle_auto on
查看设置结果
chkconfig oracle_auto --list
到此设置完成,重启测试一下吧