我已经使用 Oracle 11gR2 设置了一些 CentOS 5.6 服务器,并且没有遇到这个特定问题,但我在使用 CentOS 6.3 和自动启动 Oracle 时遇到了困难。不确定这是否与 CentOS 的新版本有关,或者与我的 PEBKAC 时刻有关,但我需要帮助。
我在 CentOS 6.3 上安装了可正常运行的 Oracle 11gR2。它运行并且正常运行。现在我只想让它从服务器开始。为此,我做了以下我通常做的事情:
创建/etc/init.d/oracle:
#!/bin/bash
#
# oracle Init file for starting and stopping
# Oracle Database. Script is valid for 10g and 11g versions.
# chkconfig: 35 80 30
# description: Oracle Database startup script
# Source function library.
. /etc/init.d/functions
ORACLE_OWNER="oracle"
ORACLE_HOME="/opt/app/oracle/product/11.2.0/db_1"
case "$1" in
start)
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
;;
stop)
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
;;
*)
echo $"Usage: $0 {start|stop}"
esac
然后运行以下两个命令:
chmod 750 /etc/init.d/oracle
chkconfig --add oracle --level 0356
然而,当我尝试service oracle start
, (作为 root)时,我收到此错误:
env: /etc/init.d/oracle: No such file or directory
不知道如何找出我们正在寻找的文件。
如果我使用扩展的变量运行该脚本的实际启动命令,则数据库启动时不会出现错误。
su - oracle -c "/opt/app/oracle/product/11.2.0/db_1/bin/dbstart /opt/app/oracle/product/11.2.0/db_1"
那么...我在这里缺少什么?一些随意的网络搜索让我觉得这种方法应该仍然有效。
答案1
呸。发帖后就明白了...
整个问题是我在电脑上创建了“oracle”文件并上传了它。所以它的行尾是错误的。重建文件,一切正常。