solaris 10使用了smf(服务管理设施)来集中管理各项系统及网络服务,其目的是降低系统管理的难度和降低系统出错的几率。实践表明,通过smf管理平台来配置和管理服务,还是十分麻烦的,例如要把一个用户自己订制安装的第三方软件配置到smf里进行管理,要做很多的工作;另外,如果某个服务出现故障,将涉及服务本身和smf这两方面,这样恢复起来难度相应增大。个人偏见:系统管理的目标是越简单越好—部署容易、维护简单及恢复快速。正好solaris 10系统有一个oracle 10g,就用它来做例子,来配置一个 oracle的自动运行脚本。
先介绍一下系统环境:
系统版本 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实例之前,我们先手动运行脚本dbstart:
-bash-3.00$ dbstart
oracle_home_listner is not set, unable to auto-start oracle net listener
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,顺利执行了,
-bash-3.00$ dbstart
-bash-3.00$ ps -aef | grep ora | grep -v grep
oracle 964 552 0 06:40:17 pts/1 0:00 ps -aef
oracle 552 546 0 06:08:08 pts/1 0:00 -bash
oracle 696 1 0 06:22:25 ? 0:00 /opt/oracle/product/10.2/db_1/bin/tnslsnr listener –inherit //监听器起来了
