Oracle自动启动/关闭脚本

Oracle 安装完成后,如果有执行orainstRoot.sh该脚本,会在/etc目录下创建oraInst.loc和oratab两个文件

其中自动启动与oratab配置有关

oratab分成三个部分,以":"分隔:

第一部分为 $ORACLE_SID 表示数据库的实例ID名

第二部分为 $ORACLE_HOME 表示数据库家目录

第三部分为 Y|N 表示是否允许系统启动时DB自启动

配置文件中的解释,这里不在翻译,需要注意的是其中提到多个条目不允许使用同一个SID

# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.

如允许DB自启动,范例:

orcl:/u01/app/oracle/product/11.2.0/db_1:Y

然后添加自动启动脚本 /etc/init.d/dbora

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the 
# Oracle database in ORA_HOME.

ORA_HOME=/u01/app/oracle/product/11.2.0
ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]
then
    echo "Oracle startup: cannot start"
    exit
fi

case "$1" in
    'start')
        # Start the Oracle databases:
        # The following command assumes that the oracle login 
        # will not prompt the user for any values
        # Remove "&" if you don't want startup as a background process.
        su $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" &
        su $ORA_OWNER -c $ORA_HOME/bin/dbstart &
        touch /var/lock/subsys/dbora
        ;;
    'stop')
        # Stop the Oracle databases:
        # The following command assumes that the oracle login 
        # will not prompt the user for any values
        su $ORA_OWNER -c $ORA_HOME/bin/dbshut
        su $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
        rm -f /var/lock/subsys/dbora
        ;;
esac

该脚本包括监听的自动启动.注意实际应用中$ORA_HOME应与安装时指定$ORACLE_HOME相符

chgrp oinstall /etc/init.d/dbora

chmod 750 /etc/init.d/dbora

ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora

ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora

ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora

chkconfig --add dbora

重启系统,观察数据库是否自动启动.

这里顺便提一下为什么没有使用ORACLE官方文档提供的脚本.官方文档使用的脚本中是通过rsh工具来远程连接oracle用户并执行相应的启动任务,很多人直接使用时报connection refuse的错误,在网上找了一下相应的问题.

其实为RHEL 5的rsh命令由多个包提供,并且放在不同的目录.

而官方启动脚本中调用了PATH变量,PATH的定义可以看出是先去读/usr/kerberos下的sbin/bin目录:

[root@dbserver1 ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin...........

检查发现rsh,rlogin命令均存在于kerberos/bin目录下,查看命令由哪个包提供的

which rsh/rlogin

rpm -qf `which rlogin`

krb5-workstation-1.6.1-36.el5_4.1

删除该包后再验证是否正确

rpm -e krb5-workstation

除此之外,还要安装rsh服务端的包

rpm -Uvh rsh-server-0.17-40.el5_7.1.i386.rpm

启动服务

chkconfig rsh on

chkconfig rlogin on

service xinetd reload

这个时候脚本应该就自动运行正常了.另外我之前给oracle用户添加过密码,执行官方的自启脚本时,还要输入密码:

解决的方式是回收oracle用户的密码,不要让脚本运行提示输入oracle用户登陆密码.

passwd -d oracle -d 参数快速取消账户的密码认证,仅root用户可以使用

参考文章

http://docs.oracle.com/cd/B28359_01/server.111/b32009/strt_stp.htm#UNXAR173

http://www.oracle-base.com/articles/linux/automating-database-startup-and-shutdown-on-linux.php

http://www.tldp.org/HOWTO/Oracle-7-HOWTO-6.html

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

转载于:http://blog.itpub.net/26664667/viewspace-1229005/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值