Solaris上Oracle数据库开机自动启动方法


Solaris上Oracle数据库开机自动启动方法总结:

一、Solaris上开机自动启动

Solaris在开机时,会自动运行/etc/rc.d目录下的所有脚本,其中N越大,执行的级别越高。其中,S开头的脚本在开机时自动运行,K开头的脚本在关机时自动运行。

二、Oracle上的启动脚本

启动脚本可以自己编写,也可以使用Oracle自带的启动和关闭数据库的脚本。

Oracle自带脚本:$ORACLE_HOME/bin/dbstart、$ORA_HOME/bin/dbshut

特别需要注意的是:dbstart中的参数PFILE可能存在问题,需要手动修改。

1、如在oracle用户下运行dbstart命令没有反应,则需要在文件/var/opt/oracle/oratab中将“ora:/export/home/oracle/product/9.2:N”修改为“ora:/export/home/oracle/product/9.2:Y”。

2、如运行命令dbstart提示can't find init file for database时,则需要将PFILE=${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora中指定的文件修改为正确的名称。

三、设置Oracle自动启动步骤(使用Oracle自带脚本)

1、修改dbstart、dbshut脚本,保证直接运行时可启动和关闭数据库;

2、新建调用dbstart、dbshut的脚本dbora放置在/etc/init.d目录下,dbora的内容如下:

#!/bin/sh
ORA_HOME=/export/home/oracle/app/oracle/products/9.2.0
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
  then
  echo "Oracle startup:cannot start"
  exit
fi
case "$1" in
'start' )
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart &
/etc/init.d/dblsnrctl.sh
;;
'stop' )
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut &
;;
esac

3、新建启动lsnrctl的脚本dblsnrctl.sh(dbora脚本将调用此脚本)防止在/etc/init.d目录下,dblsnrctl.sh的内容如下:

#!/bin/sh

su - oracle

lsnrctl start

exit

4、修改dbora脚本和dblsnrctl.sh脚本的权限,以保证可运行:

#chmod 755 /etc/init.d/dbora

#chmod 755 /etc/init.d/dblsnrctl.sh

5、在/etc/rc2.d中设置启动链接:

#cd /etc/rc2.d

#ln -s /etc/init.d/dbora S99oracle

6、在/etc/rc0.d中设置关闭链接:

#cd /etc/rc0.d

#ln -s /etc/init.d/dbora K10oracle

更多Oracle相关信息见Oracle 专题页面 http://www.bkjia.com/topicnews.aspx?tid=12

相关内容