ITPub博客

首页 > 数据库 > 数据库开发技术 > UNIX机器设置自动开关数据库的方法

UNIX机器设置自动开关数据库的方法

原创 数据库开发技术 作者:coolwinds 时间:2005-01-25 20:00:11 0 删除 编辑

UNIX机器设置自动开关数据库的方法

[@more@]

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如果有问题可以查查原因:是环境变量没有设置好, 还是本身的dbstartdbshut有错误。

 

 我用过的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数据库是否自动启动了。

 

 

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/83980/viewspace-788316/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-10-23

  • 博文量
    253
  • 访问量
    947356