在solaris 10下设置Oracle 10g自启动

    Oracle 10g在solaris 10下的自动运行脚本,Solaris 10使用了SMF(服务管理设施)来集中管理各项系统及网络服务,其目的是降低系统管理的难度和降低系统出错的几率。

 

  实践表明,通过SMF管理平台来配置和管理服务,还是十分麻烦的,例如要把一个用户自己订制安装的第三方软件配置到SMF里进行管理,要做很多的工作;另外,如果某个服务出现故障,将涉及服务本身和SMF这两方面,这样恢复起来难度相应增大。个人偏见:系统管理的目标是越简单越好-部署容易、维护简单及恢复快速。正好solaris 10系统有一个oracle 10g,就用它来做例子,来配置一个 Oracle 10g在solaris 10下的自动运行脚本。

 

先介绍一下系统环境:

  系统版本 SunOS sery 5.10 Generic_118855-33 i86pc i386 i86pc

  Oracle 版本 racle Database 10g Enterprise Edition Release 10.2.0.2.0 - Prod

  Oracle 安装路径 /oracle/u01/app/oracle/product/10.2.0/db_1

  dbstart 路径 /oracle/u01/app/oracle/product/10.2.0/db_1/bin/dbstart

 

  Oracle 自带一个脚本dbstart,它的用途就是用来制作自动Oracle 10g在solaris 10下的自动运行脚本。在没有启动oracle实例之前,我们先手动运行脚本dbstart:

 

      -bash-3.00$ dbstart
      ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
      Usage: /oracle/u01/app/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME

 

 

  提示没有设置ORACL_HOME_LISTNER,接着给出这个命令的使用方法。用ps -aef | grep ora看oracle相关进程是否起来,哦,没有起来!修改文件dbstart,找到ORACL_HOME_LISTNER这一行(还好,只有唯一的一行),它的默认值为“$1”,表示接受一个位置参数的意思,既然程序需要手动加位置参数ORACLE_HOME,我们不妨把“$1”直接用“ORACLE_HOME”替换掉,即 ORACLE_HOME_LISTNER=$ORACLE_HOME,保存后再来执行脚本dbstart,顺利执行了。

 

-bash-3.00$ dbstart
-bash-3.00$ ps -aef|grep ora
  oracle  1254  1249   0 03:02:13 pts/3       0:00 -bash
  oracle  1244  1240   0 03:01:34 pts/3       0:00 -bash
  oracle  1285  1254   0 03:10:07 pts/3       0:00 -bash
  oracle  1438  1426   0 03:17:48 pts/3       0:00 -bash
  oracle  1714  1438   0 03:30:26 pts/3       0:00 ps -aef
  oracle  1297     1   0 03:10:19 ?           0:00 /oracle/u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER -inherit

 

 

  监听器起来了

  但没有oracle进程,只有oracle监听器起来了。还有一个文件/var/opt/oracle/oratab修要修改,这个文件是oracle安装过程中,手动执行root.sh被创建的。打开这个文件,有效的配置只有一行,下面是某个系统上的输出:

      IRP:/oracle/u01/app/oracle/product/10.2.0/db_1:N

  根据注释的提示,我们需要把它最后一个字段(以冒号“:”为字段分割符)的值由“N”改为“Y”,保存后再来执行dbstart。

      -bash-3.00$ dbstart
      Processing Database instance "IRP": log file /oracle/u01/app/oracle/product/10.2.0/db_1/startup.log

 

 

  这时,oracle实例运行起来了。根据这个经验,我们顺便把文件dbshut这个文件也修改了。

  一切准备就绪,就可以开始写运行级别的自动脚本了。在运行级别3的目录创建文件/etc/rc3.d/S33dbstart,其内容如下:

      #!/bin/bash
      su - oracle -c "/oracle/u01/app/oracle/product/10.2.0/db_1/bin/dbstart"

 

  少选项-c将不会执行这个脚本

 

  保存后在给它执行权限。同理在运行级别S的目录建文件 /etc/rcS.d/K33dbshut,文件内容如下:

      #!/bin/bash
      su - oracle -c "/opt/oracle/product/10.2/db_1/bin/dbshut"

 

执行命令init 6重启solaris 10,看oracle实例及监听器是否在正常运行。当然,如果不用运行级别而用服务管理设施SMF来管理oracle服务的话,还有好多步骤修要完成,有兴趣的可以去试试以上的相关内容就是对Oracle 10g在solaris 10下的自动运行脚本的介绍,望你能有所收获。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值