看了一下$ORACLE_HOME\bin\dbstart这个shell脚本,发现居然有一个bug。他认为PFILE=${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora,
看了一下$Oracle_HOME\bin\dbstart这个shell脚本,发现居然有一个bug。
他认为PFILE=${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora,但是实际上在oracle9i默认安装以后,$ORACLE_HOME/dbs目录下并没有init$ORACLE_SID.ora这个文件,因为9i已经使用spfile来作为启动时候的parameter file了,所以在dbs目录下只有pfileinit$ORACLE_SID.ora这个文件。而init$ORACLE_SID.ora文件则是在pfile目录中。于是就考过来,然后再执行dbstart。OK,搞定。
但是仍然有个问题,我的/etc/oratab文件最后两行是这样的
*:/u01/oracle/product/9.2.0:Y
oralinux:/u01/oracle/product/9.2.0:Y
为什么会有带*号的这行呢?dbshut或者dbstart脚本是在循环读这个文件中所有没有注释的行,所以如果有*号这行的话,在运行dbstart和dbshut时就会先报两行错,说找不到这个servicename(因为脚本中把*号当成空的sid),去掉这行就好了。但是,去掉这一行的话,每次用oracle用户登录linux的时候就会提示输入一遍ORACLE_HOME,原因是在oracle用户的profile中要运行oraenv,具体oraenv怎么写的,我就没看了,反正肯定是有*号这行就不会问了。
另外虽然dbstart和dbshut都可以运行了,但是仍然不会在linux启动的时候自动open数据库,这是为什么?我在/etc/init.d中已经创建了dbora脚本了。
当然不会自起了,因为,你在oratab中改变的只是让数据库可以用dbstart和dbshut,如果要在系统启动时启动数据库必须在/etc/rc.local中加入启动脚本啊
给你一个配置 Oracle 启动脚本的 RPM 软件包,,从 SUSE Linux 改过来的。可以用在 RedHat 7.x 上。
看看里面有什么文件就知道该如何设置了。
查看软件包简要信息:
rpm -qpi xxx.rpm
查看软件包文件列表:
rpm -qpl xxx.rpm
这只是软件包安装前的查看方式。