配置Oracle随系统启动和关闭

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
 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_HOME >> $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_HOME >> $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_HOME >> $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_HOME >> $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

相关推荐