欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

关于oralce9iR2 for Linux的dbstart设置与dbshut脚本

程序员文章站 2024-02-06 13:18:28
...

看了一下$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

这只是软件包安装前的查看方式。

关于oralce9iR2 for Linux的dbstart设置与dbshut脚本