随系统启动关闭的oracle数据库


随系统启动关闭的oracle数据库
实现如下目的:
    a、实现开启Oracle实例自启动
    b、关闭操作系统或重启操作系统前能够正常关闭Oracle数据库

1、修改Oracle系统配置文件/etc/oratab内容,将最后一行中最后一个字符的N改为Y
orcl:/oracle/app/oracle/product/11.2.0:Y

2、RedHat修改/etc/rc.d/rc.local文件,添加如下内容即可:
   SUSE 修改/etc/init.d/after.local,添加如下内容即可:
#vi /etc/rc.d/rc.local
su -c "dbstart" - oracle

3、切换到oracle用户登录修改$ORACLE_HOME/bin/下修改dbstart和dbshut,找到ORACLE_HOME_LISTNER=,将值改为ORACLE_HOME的路径,或环境变量$ORACLE_HOME。
示例如下:
# Set this to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=$ORACLE_HOME   ---就是修改这里哟,用$ORACLE_HOME或绝对路径都可以

oracle用户下可直接执行
dbstart   ---启动监听和示例;如当前库启动,则会shut abort再启动库;
dbshut    ---关闭示例和监听;

4、系统关闭前,自动关闭数据库

创建K01orashut文件,
vi /etc/init.d/K01orashut
添加
su -c "dbshut" - oracle

修改权限为可执行
#chmod +x /etc/init.d/K01orashut

可将上述执行文件直接放在/etc/init.d/rcx.d对应的目录下,也可创建软连接,切记:文件名首字母必须是大写,如下:
进入/etc/rc5.d/目录,创建关机执行命令连接
#ln -s /etc/init.d/K01orashut

================================================================================
复杂一点的方法,可以添加到服务上

oracle自动启动脚本

切换到oracle用户登录修改$ORACLE_HOME/bin/下修改dbstart和dbshut,找到ORACLE_HOME_LISTNER=,将值改为ORACLE_HOME的路径,或环境变量$ORACLE_HOME。
示例如下:
# Set this to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=$ORACLE_HOME   ---就是修改这里哟,用$ORACLE_HOME或绝对路径都可以

命令介绍:oracle自带的命令
dbstart   ---启动监听和示例;如当前库启动,则会shut abort再启动库;
dbshut    ---关闭示例和监听;

  1. 创建脚本,该脚本也可单独使用
vi /etc/init.d/orcl

# !/bin/bash
# whoami
# root
# chkconfig: 345 51 49
# /etc/init.d/orcl
# description: starts the oracle dabase deamons
#
ORA_HOME=/oracle/app/oracle/product/11.2.0
ORA_OWNER=oracle
case "$1" in
start)
echo -n "Starting orcl: "
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" &
touch /var/lock/subsys/orcl
echo
;;
stop)
echo -n "shutting down orcl: "
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" &
rm -f /var/lock/subsys/orcl
echo
;;
restart)
echo -n "restarting orcl: "
$0 stop
$0 start
echo
;;
*)
echo "Usage: `basename $0` start|stop|restart"
exit 1
esac
exit 0

保存 orcl 并退出
2. 增加配置服务
/sbin/chkconfig --add orcl

3. 修改Oracle系统配置文件/etc/oratab内容,将最后一行中最后一个字符的N改为Y
vi /etc/oratab
ORACLE_SID:ORACLE_HOME:Y -- 是否自启动

手动执行命令可以
/etc/init.d/orcl start|stop
service orcl start|stop

4. 重启测试一下
或者简单的配置 /etc/rc.d/rc.local 增加启动命令
su - oracle -c /home/oracle/product/10.2.0/db_1/bin/dbstart

请使用浏览器的分享功能分享到微信等