中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > Web开发 > JavaScripts > 综合文章
UNIX机器设置自动开关数据库的方法
作者:佚名 时间:2005-02-20 11:03 出处:互连网 责编:chinaitpower
              摘要:UNIX机器设置自动开关数据库的方法
UNIX系统的机器在开机后和关机前都要运行一些特定的服务, 如启动和关闭sendmail,crond等。

同样我们可以设置UNIX机器在开机后和关机前启动和关闭ORACLE数据库的服务。

首先我们要确认oracle用户能否用系统自带的Shell程序dbstart, dbshut正常启动和关闭数据库。

dbstart, dbshut的存放目录在$ORACLE_HOME/bin

dbstart, dbshut会读Sun Solaris目录下/var/opt/oracle/oratab, 或者linux目录下/etc/oratab 文件。

先确认这里参数已正确设置:

#你要启动的数据库sid:ORACLE_HOME:Y

例如:
test:/oracle/product/8.1.7:Y

如果有两个在用的数据库,这里oratab里可以是两行。

例如:
test:/oracle/product/8.1.7:Y
test2:/oracle/product/8.1.7:Y

执行dbstart, dbshut如果有问题可以查查原因:是环境变量没有设置好, 还是本身的dbstart或dbshut有错误。

我用过的Oracle8.1.6.*版本的dbstart就不能启动数据库。

按dbshut的格式重新写一个dbstart, 把里面shutdown的字符替换成startup, 可以解决这个问题。

然后在Sun Solaris目录/etc/init.d下, 或者linux目录/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机器重新启动的时候,Oracle数据库是否自动启动了。   
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有