Oracle 10g在solaris 10下如何自动运行脚本

数据库 Oracle
以下的文章主要描述的是Oracle 10g在solaris 10下是如何自动运行脚本的实际操作方案,以下就是文章的具体内容介绍。

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 安装路径 /opt/oracle/product/10.2/db_1

dbstart 路径 /opt/oracle/product/10.2/db_1/bin/dbstart

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

 

  1. -bash-3.00$ dbstart  
  2. ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener  
  3. Usage: /opt/oracle/product/10.2/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=$1 -à ORACLE_HOME_LISTNER=$ORACLE_HOME,保存后再来执行脚本dbstart,顺利执行了,

 

  1. -bash-3.00$ dbstart  
  2. -bash-3.00$ ps -aef | grep ora | grep -v grep  
  3. oracle 964 552 0 06:40:17 pts/1 0:00 ps -aef  
  4. oracle 552 546 0 06:08:08 pts/1 0:00 -bash  
  5. oracle 696 1 0 06:22:25 ? 0:00 /opt/oracle/product/10.2/db_1/bin/tnslsnr LISTENER –inherit   

监听器起来了

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

 

  1. sery:/opt/oracle/product/10.2/db_1:N 

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

 

  1. -bash-3.00$ dbstart  
  2. Processing Database instance "sery": log file /opt/oracle/product/10.2/db_1/startup.log  
  3. -bash-3.00$ ps -eaf | grep ora  
  4. oracle 1175 1 0 06:54:35 ? 0:00 ora_j001_sery  
  5. oracle 1173 1 1 06:54:35 ? 0:01 ora_j000_sery  
  6. oracle 1179 1 0 06:54:35 ? 0:00 ora_j003_sery  
  7. oracle 1177 1 0 06:54:35 ? 0:00 ora_j002_sery  

 

 

……(省略若干输出)

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

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

 

  1. #!/bin/bash  
  2. su - oracle -c /opt/oracle/product/10.2/db_1/bin/dbstart&   

 

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

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

 

  1. #!/bin/bash  
  2. su - oracle -c /opt/oracle/product/10.2/db_1/bin/dbshut &  

 

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

【编辑推荐】

  1. Oracle 11g调用相关函数的5种方法
  2. Oracle to_char的用法的描述
  3. Oracle数据库设计规范化的前两个要求
  4. 配置Oracle RAC中应注意的问题
  5. Oracle存储过程的编写经验总结
责任编辑:佚名 来源: 博客园
相关推荐

2011-05-13 11:21:51

linuxoracle 10g安装

2010-04-29 17:13:51

Oracle 10g

2010-04-14 16:09:51

Oracle 10g归

2010-04-15 14:47:50

Oracle 10g

2010-04-15 13:14:18

linux下Oracl

2011-03-25 16:10:58

oraclenagios

2010-03-31 10:30:03

Oracle 10g

2023-03-02 23:45:23

linux开机启动Windows

2010-05-05 15:58:34

Oracle 10g

2010-04-30 17:50:25

2011-03-29 09:56:48

Oracle数据库10SQL

2010-04-14 14:40:32

Oracle 10g

2010-04-13 10:07:19

Oracle 10G

2010-03-30 19:31:25

Oracle 10g

2009-11-19 10:32:41

Oracle 10g服

2009-10-23 16:03:40

Oracle 10g系内存管理

2010-05-07 09:35:25

Oracle 10g

2009-11-19 15:57:34

Oracle 10g数

2010-04-07 09:39:18

Oracle 10G

2011-04-15 09:53:37

Oracle 10gSQL优化
点赞
收藏

51CTO技术栈公众号