一、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相关信息见 专题页面