Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2088756
  • 博文数量: 1647
  • 博客积分: 80000
  • 博客等级: 元帅
  • 技术积分: 9980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 15:15
文章分类

全部博文(1647)

文章存档

2011年(1)

2008年(1646)

我的朋友

分类:

2008-10-28 18:27:23


  UNIX系统的机器在开机后和关机前都要运行一些特定的服务, 如启动和关闭sendmail,crond等。
  
   同样我们可以设置UNIX机器在开机后和关机前启动和关闭ORACLE数据库的服务。
  
   首先我们要确认oracle用户能否用系统自带的Shell程序dbstart, dbshut正常启动和关闭数据库。
  
   dbstart, dbshut的存放目录在$ORACLE_HOME/bin
  
   如果有问题可以查查原因:是环境变量没有设置好, 还是本身的dbstart或dbshut有错误。
  
   我用过的8.1.6.*版本的dbstart就不能启动数据库。
  
   按dbshut的格式重新写一个dbstart, 把里面shutdown的字符替换成startup, 可以解决这个问题。
  
   然后在Sun Solaris目录/etc/init.d下, 或者目录/etc/rc.d/init.d下.
  
   写一个类似下面的shell文件oracle ( 你要有root权限 )
  
   -----------------------------------------------------------------------------------
   #!/bin/sh
  
   OPT_=$1
  
   case "$OPT_" in
   start)
   /bin/echo "$0 : (start)"
   #
   # Your service startup command goes here.
   #
   su - oracle -c "/oracle/product/8.1.7/bin/lsnrctl start"
   su - oracle -c "/oracle/product/8.1.7/bin/dbstart"
  
   # NOTE: Must exit with zero unless error is severe.
   chmod 1777 /tmp
   chown sys:sys /tmp
   exit 0
   ;;
   stop)
   /bin/echo "$0 : (stop)"
   #
   # Your service shutdown command goes here.
   #
   su - oracle -c "/oracle/product/8.1.7/bin/lsnrctl stop"
   su - oracle -c "/oracle/product/8.1.7/bin/dbshut"
  
   # NOTE: Must exit with zero unless error is severe.
   exit 0
   ;;
   *) /bin/echo ''
   /bin/echo "Usage: $0 [start|stop]"
   /bin/echo " Invalid argument ==> \"${OPT_}\""
   /bin/echo ''
   exit 0
   ;;
   esac
   -----------------------------------------------------------------------------------
   如果你安装的$ORACLE_HOME不是/oracle/product/8.1.7, 需要根据情况修改。
  
   改变它的属性成755, 可以执行。
  
   然后在UNIX机器开机后和关机前要执行的任务目录里加个文件链接。
  
   开机后自动启动ORACLE数据库:
  
   Sun Solaris
   #cd /etc/rc2.d
   #ln -s /etc/init.d/oracle S99oracle
  
   Linux
   #cd /etc/rc.d/rc3.d
   #ln -s /etc/rc.d/init.d/oracle S99oracle
  
   关机前自动关闭ORACLE数据库:
  
   Sun Solaris
   #cd /etc/rc0.d
   #ln -s /etc/init.d/oracle K01oracle
  
   Linux
   #cd /etc/rc.d/rc0.d
   #ln -s /etc/rc.d/init.d/oracle K01oracle
  
   最后实验一下UNIX机器重新启动的时候,数据库是否自动启动了。
【责编:admin】

--------------------next---------------------

阅读(206) | 评论(0) | 转发(0) |
0

上一篇:数据库备份方式

下一篇:ORACLE数据库简介

给主人留下些什么吧!~~