分类:
2010-10-13 11:48:01
先介绍一下系统环境:
系统版本 |
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 --->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/ db_1/bin/tnslsnr LISTENER –inherit //监听器起来了 |
但没有oracle进程,只有oracle监听器起来了。还有一个文件/var/opt/oracle/oratab修要修改,这个文件是oracle安装过程中,手动执行root.sh被创建的。打开这个文件,有效的配置只有一行,下面是某个系统上的输出:
以下是代码片段: sery:/opt/oracle/product/10.2/db_1:N |
根据注释的提示,我们需要把它最后一个字段(以冒号“:”为字段分割符)的值由“N”改为“Y”,保存后再来执行dbstart &。
以下是代码片段: -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 ……(省略若干输出) |
这时,oracle实例运行起来了。根据这个经验,我们顺便把文件dbshut这个文件也修改了。
以下是代码片段: #!/bin/bash su - oracle -c /opt/oracle/product/10.2/db_1/bin/dbstart& //少选项-c将不会执行这个脚本,-c command |
保存后在给它执行权限。同理在运行级别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服务的话,还有好多步骤修要完成,有兴趣的可以去试试。