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
|
-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 |
即:ORACLE_HOME_LISTNER=$1 --->RACLE_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/ |
sery:/opt/oracle/product/10.2/db_1:N |
-bash-3.00$ dbstart Processing Database instance "sery": log file /opt/oracle/product/10.2/db_1/startup.log -bash-3.00$ ps -eaf | grep ora oracle 1175 1 0 06:54:35 ? 0:00 ora_j001_sery oracle 1173 1 1 06:54:35 ? 0:01 ora_j000_sery oracle 1179 1 0 06:54:35 ? 0:00 ora_j003_sery oracle 1177 1 0 06:54:35 ? 0:00 ora_j002_sery ……(省略若干输出) |
一切准备就绪,就可以开始写运行级别的自动脚本了。在运行级别3的目录创建文件/etc/rc3.d/S33dbstart,其内容如下:
#!/bin/bash su - oracle -c /opt/oracle/product/10.2/db_1/bin/dbstart& |
#!/bin/bash su - oracle -c /opt/oracle/product/10.2/db_1/bin/dbshut & |
执行命令init 6重启solaris 10,看oracle实例及监听器是否在正常运行。当然,如果不用运行级别而用服务管理设施SMF来管理oracle服务的话,还有好多步骤修要完成,有兴趣的可以去试试。