linux下Oracle自动启动与停止(二)

  1. 概述
    让数据库在操作系统启动的时候自动启动,会让数据库的维护变得更加简单、方便。
    曾经写过一篇在linux自动启动oracle的文章“linux下Oracle自动启动与停止(一)”http://blog.csdn.net/chenxiaohua/archive/2008/02/26/2121878.aspx。该文章的方法需要用到/etc/oratab、$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut,显得不够灵活。下面讲解另外一个方法自动启动多个oracle实例和监听器。
    文章“创建、启动oracle数据库”讲述了怎样创建多个数据库和实例,并启动这些实例,现在将讲述怎样在系统启动的时候,自动启动这些数据库。
  2. 编写脚本
    用root用户,进入进入目录/etc/rc.d/init.d,创建文件oracle_linuxdb,该脚本用于启动实例linuxdb,内容如下:
    #!/bin/sh #chkconfig: 2345 80 80 #description:oracle_linuxdb # # /etc/rc.d/init.d/oracle_linuxdb # auto start database LINUXDB instance #set oracle env export ORACLE_BASE=/home/ora/ora9 export ORACLE_HOME=$ORACLE_BASE/oracle export PATH=$PATH:$ORACLE_HOME/bin ORACLE_USER=ora #start or stop script case $1 in start) su - "$ORACLE_USER"<<EOO export ORACLE_SID=linuxdb lsnrctl start LISTENER_LINUXDB sqlplus /nolog<<EOS connect / as sysdba startup EOS EOO ;; stop) su - "$ORACLE_USER"<<EOO export ORACLE_SID=linuxdb lsnrctl stop LISTENER_LINUXDB sqlplus /nolog<<EOS connect / as sysdba shutdown immediate EOS EOO ;; *) echo "Usage: $0 {start|stop}" ;; esac
    在上面的代码是一个shell脚本,首先设置oracle相关的环境变量,注意ORACLE_SID指定了启动的实例名。
    然后赋予oracle_linuxdb执行权限,执行命令:chmod +x oracle_linuxdb
    下面可以运行该脚本,进行测试。
    启动,运行命令:./oracle_linuxdb start
    关闭,执行命令:./oracle_linuxdb stop
    可以用sqlplus user/pass@tnsname来测试启动和关闭数据库是否成功。

    创建文件oracle_wldev,用于启动数据库实例wldev,内容如下:
    #!/bin/sh #chkconfig: 2345 80 80 #description:oracle_wldev # # /etc/rc.d/init.d/oracle_wldev # auto start database WLDEV instance #set oracle env export ORACLE_BASE=/home/ora/ora9 export ORACLE_HOME=$ORACLE_BASE/oracle export PATH=$PATH:$ORACLE_HOME/bin ORACLE_USER=ora #start or stop script case $1 in start) su - "$ORACLE_USER"<<EOO export ORACLE_SID=wldev lsnrctl start LISTENER_WLDEV sqlplus /nolog<<EOS connect / as sysdba startup EOS EOO ;; stop) su - "$ORACLE_USER"<<EOO export ORACLE_SID=wldev lsnrctl stop LISTENER_WLDEV sqlplus /nolog<<EOS connect / as sysdba shutdown immediate EOS EOO ;; *) echo "Usage: $0 {start|stop}" ;; esac
    然后赋予oracle_wldev执行权限,执行命令:chmod +x oracle_wldev
    下面可以运行该脚本,进行测试。
    启动,运行命令:./oracle_wldev start
    关闭,执行命令:./oracle_wldev stop
    可以用sqlplus user/pass@tnsname来测试启动和关闭数据库是否成功。

    现在有了启动和关闭oracle的脚本,只要把这些脚本设置好,让系统在启动和关闭的时候,自动执行就好了。
  3. 发布
    执行如下命令:
    chkconfig --add oracle_linuxdb
    chkconfig --add oracle_wldev
    chkconfig命令运行成功后,在rc2.d,rc3.d,rc4.d,rc5.d下面建立了S80oracle_linuxdb和S80oracle_wldev两个连接文件,可以在系统启动的时候,运行脚本启动数据库。在rc0.d、rc1.d和rc6.d目录下面建立了K80oracle_linuxdb和K80oracle_wldev文件,用于在系统关闭的时候自动运行脚本关闭数据库。

    关于chkconfig的用法,可以通过man chkconfig查看。

你可能感兴趣的:(oracle,数据库,linux,脚本,user,database)