SHELL脚本实现Oracle自启动与关闭


前言:通过SHELL脚本实现Oracle自启动与关闭方法很多,脚本也很简单,本例是通过编写一个简单的脚本来调用Oracle10g自带的3个脚本来实现。现在开始吧   首先我们把Oracle自带的3个脚本简单的编辑一下,这3个脚本的目录分别位于:   /etc/oratab $ORACLE_HOME/bin/dbstart $ORACLE_HOME/bin/dbshut   vi /etc/oratab qdyx:/opt/app/oracle/product/10/db:Y +ASM:/opt/app/oracle/product/10/db:Y   将确认启动域置为“Y”,这样做的好处是当系统中存在多个实例时,我们可以选择性的进行操作。   vi $ORACLE_HOME/bin/dbstart ORACLE_HOME_LISTNER=$ORACLE_HOME 找到“ORACLE_HOME_LISTNER”将他的值修改为“$ORACLE_HOME   vi $ORACLE_HOME/bin/dbshut 在文件未尾加入一行:lsnrctl stop dbshut默认只关闭/etc/oratab中设置为“Y”的数据库,并不关闭监听器。 准备工作做好了,编辑一个简单的脚本来调用oratabdbstartdbshut  
  1. #! /bin/bash
  2. case "$1" in
  3. start)
  4. echo "Starting Oracle Listener and Database....."
  5. echo "----------------------------------------------" >> /var/log/oracle.log
  6. echo "`date +%T%a%D`:Starting Oracle Listener and Database....." >> /var/log/oracle.log
  7. echo "---------------------------------------------" >> /var/log/oracle.log
  8. su - oracle -c dbstart >> /var/log/oracle.log
  9. echo "Done"
  10. echo ""
  11. echo "----------------------------------------------" >> /var/log/oracle.log
  12. ;;
  13. stop)
  14. echo "stoping Oracle Listener and Database....."
  15. echo "----------------------------------------------" >> /var/log/oracle.log
  16. echo "`date +%T%a%D`:Stoping Oracle Listener and Database....." >> /var/log/oracle.log
  17. echo "---------------------------------------------" >> /var/log/oracle.log
  18. su - oracle -c dbshut >> /var/log/oracle.log
  19. echo "Done"
  20. echo ""
  21. echo "----------------------------------------------" >> /var/log/oracle.log
  22. ;;
  23. *)
  24. echo "Usage: oracle{start | stop}"
  25. ;;
  26. esac
将上面的脚本命名为oralce,放在/etc/init.d/目录下,并添加可执行权限。完了,可以执行脚本做下数据库打开与关闭的测试。到这里马上快完了,耐心一点,呵呵!!!   接下来,我们要让Linux系统在启动与关闭的时候能够执行这个脚本。 首先是启动时执行这个脚本,我运行在启动级别5下,建立一个软链接: ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc5.d/S99oracle 如果你的系统运行在启动级别3,将rc5.d变成rc3.d就行了,这个S99Oracle是什么意思呢,简单解释下,S表示在系统启动时会向脚本传递一个start的参数,99表示最后执行这个脚本,如果有兴趣可去这个目录看下就明白了。
  • 1
  • 2
  • 下一页

相关内容