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,内容如下:
    1. #!/bin/sh   
    2. #chkconfig: 2345 80 80   
    3. #description:oracle_linuxdb   
    4. #   
    5. # /etc/rc.d/init.d/oracle_linuxdb   
    6. # auto start database LINUXDB instance   
    7.   
    8. #set oracle env   
    9. export ORACLE_BASE=/home/ora/ora9  
    10. export ORACLE_HOME=$ORACLE_BASE/oracle  
    11. export PATH=$PATH:$ORACLE_HOME/bin  
    12. ORACLE_USER=ora  
    13.   
    14.   
    15. #start or stop script   
    16. case  $1 in  
    17. start)  
    18. su - "$ORACLE_USER" <<EOO  
    19. export ORACLE_SID=linuxdb  
    20. lsnrctl start LISTENER_LINUXDB  
    21. sqlplus /nolog<<EOS  
    22. connect / as sysdba  
    23. startup  
    24. EOS  
    25. EOO  
    26. ;;  
    27.   
    28. stop)  
    29. su - "$ORACLE_USER" <<EOO  
    30. export ORACLE_SID=linuxdb  
    31. lsnrctl stop LISTENER_LINUXDB  
    32. sqlplus /nolog<<EOS  
    33. connect / as sysdba  
    34. shutdown immediate  
    35. EOS  
    36. EOO  
    37. ;;  
    38.   
    39. *)  
    40. echo "Usage: $0 {start|stop}"   
    41. ;;  
    42. esac  

    在上面的代码是一个shell脚本,首先设置oracle相关的环境变量,注意ORACLE_SID指定了启动 的实例名。
    然后赋予oracle_linuxdb执行权限,执行命令:chmod +x oracle_linuxdb
    下面可以运行该脚 本,进行测试。
    启动,运行命令:./oracle_linuxdb start
    关闭,执行命令:./oracle_linuxdb stop
    可以用sqlplus user/pass@tnsname来测试启动和关闭数据库是否成功。

    创建文件 oracle_wldev,用于启动数据库实例wldev,内容如下:
    1. #!/bin/sh   
    2. #chkconfig: 2345 80 80   
    3. #description:oracle_wldev   
    4. #   
    5. # /etc/rc.d/init.d/oracle_wldev   
    6. # auto start database WLDEV  instance   
    7.   
    8. #set oracle env   
    9. export ORACLE_BASE=/home/ora/ora9  
    10. export ORACLE_HOME=$ORACLE_BASE/oracle  
    11. export PATH=$PATH:$ORACLE_HOME/bin  
    12. ORACLE_USER=ora  
    13.   
    14.   
    15. #start or stop script   
    16. case  $1 in  
    17. start)  
    18. su - "$ORACLE_USER" <<EOO  
    19. export ORACLE_SID=wldev  
    20. lsnrctl start LISTENER_WLDEV  
    21. sqlplus /nolog<<EOS  
    22. connect / as sysdba  
    23. startup  
    24. EOS  
    25. EOO  
    26. ;;  
    27.   
    28. stop)  
    29. su - "$ORACLE_USER" <<EOO  
    30. export ORACLE_SID=wldev  
    31. lsnrctl stop LISTENER_WLDEV  
    32. sqlplus /nolog<<EOS  
    33. connect / as sysdba  
    34. shutdown immediate  
    35. EOS  
    36. EOO  
    37. ;;  
    38.   
    39. *)  
    40. echo "Usage: $0 {start|stop}"   
    41. ;;  
    42. 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查看。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值