1、修改/etc/oratab文件
将需要随操作系统自启动的数据库由N修改为Y
lis:/u01/app/oracle/product/11.2.0/db_1:N
修改为:
lis:/u01/app/oracle/product/11.2.0/db_1:Y
2、编辑dbstart和dbshut脚本,修改监听变量为oracle家目录
$ cd $ORACLE_HOME/bin
$ vi dbstart
将
ORACLE_HOME_LISTNER=$1
修改为
ORACLE_HOME_LISTNER=$ORACLE_HOME
以同样的方式修改dbshut脚本
所以调用脚本时就不用传递参数了
3、编写/etc/init.d/oracle脚本
vi /etc/init.d/oracle
其中脚本开头的ORACLE_HOME变量和日志文件需要根据实际情况设定
内容如下:
#!/bin/bash
#chkconfig: 345 99 01 (一定要加,否则chkconfig --add oracle 报错 service oracle does not support chkconfig )
#description:start oracle (一定要加,否则chkconfig --add oracle 报错 service oracle does not support chkconfig )
ORACLE_LOG_FILE=/var/log/oracle
ORACLE_HOME=/oracle/product/11.2.0/db_1
case $1 in
start)
date +"%F %X" >> $ORACLE_LOG_FILE
echo "Starting Oracle Databases and Listener:" >> $ORACLE_LOG_FILE
touch /var/lock/subsys/oracle
su - oracle -c $ORACLE_HOME/bin/dbstart >> $ORACLE_LOG_FILE
echo "Oracle Databases and Listener Started Successfully!" >> $ORACLE_LOG_FILE
echo ""
echo "-------------------------------------------------------------------" >> $ORACLE_LOG_FILE
;;
stop)
date +"%F %X" >> $ORACLE_LOG_FILE
echo "Shutting Down Oracle Databases and Listener:" >> $ORACLE_LOG_FILE
rm -rf /var/lock/subsys/oracle
su - oracle -c $ORACLE_HOME/bin/dbshut >> $ORACLE_LOG_FILE
echo "Oracle Databases and Listener Stopped Successfully!" >> $ORACLE_LOG_FILE
echo ""
echo "-------------------------------------------------------------------" >> $ORACLE_LOG_FILE
;;
restart)
date +"%F %X" >> $ORACLE_LOG_FILE
echo "Shutting Down Oracle Databases and Listener:" >> $ORACLE_LOG_FILE
rm -rf /var/lock/subsys/oracle
su - oracle -c $ORACLE_HOME/bin/dbshut >> $ORACLE_LOG_FILE
echo "Oracle Databases and Listener Stopped Successfully!" >> $ORACLE_LOG_FILE
echo ""
echo "Starting Oracle Databases and Listener:" >> $ORACLE_LOG_FILE
touch /var/lock/subsys/oracle
su - oracle -c $ORACLE_HOME/bin/dbstart >> $ORACLE_LOG_FILE
echo "Oracle Databases and Listener Started Successfully!" >> $ORACLE_LOG_FILE
echo ""
echo "-------------------------------------------------------------------" >> $ORACLE_LOG_FILE
;;
*)
echo "Usage: Oracle {start|stop|restart}"
exit 1
;;
esac
exit
4、修改脚本的权限:
chmod 750 /etc/init.d/oracle
5、测试启动关闭脚本是否能正常运行
测试启动监听器和数据库:
$ service oracle start
测试关闭监听器和数据库:
$ service oracle stop
测试重启oracle监听器和数据库:
$ service oracle restart
通过使用lsnrctl status来检查监听器的状态
通过使用ps -ef | grep ora_来检查实例的状态
6、将oracle添加为服务,并设置为345级别启动:
# chkconfig --add oracle
# chkconfig --list | grep oracle
7、如果数据库已经启动,没法停机,最好以root用户创建下面锁的文件
这样下次关机的时候才会自动关闭oracle
touch /var/lock/subsys/oracle
8.相关脚本路径:
dbshut/dbstart $ORACLE_HOME/bin/
oracle /etc/init.d/