首先编辑/etc/oratab文件,将要自动启动的数据库对应条目置为Y
在/etc/rc.d/init.d下建立文件dbora,内容如下:
#!/bin/sh
ORACLE_HOME=/u01/oracle/product/8.1.7(你的oracle_home)
ORACLE_OWNER=oracle(你的oracle用户)
if [! -f $ORACLE_HOME/bin/dbstart]
then

解决方案 »

  1.   

    首先编辑/etc/oratab文件,将要自动启动的数据库对应条目置为Y
    在/etc/rc.d/init.d下建立文件dbora,内容如下:已root建立
    #!/bin/sh
    ORA_HOME=/u01/oracle/product/8.1.7(你的oracle_home)
    ORA_OWNER=oracle(你的oracle用户)
    if [! -f $ORACLE_HOME/bin/dbstart]
    then
    echo "cannot start!"
    exit
    fi
    case "$1" in
    'start')
       su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart"
       su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
       ;;
    'stop')
       su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut"
       su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
       ;;
    esac
    执行(root):
    chmod u+x dbora
    ln -s /etc/rc.d/init.d/dbora /etc/rc.d/rc3.d/S99dbora
    ln -s /etc/rc.d/init.d/dbora /etc/rc.d/rc5.d/S99dbora
    ln -s /etc/rc.d/init.d/dbora /etc/rc.d/rc0.d/K99dbora
      

  2.   

    应该还加一句,重启的时候用
    case "$1" in
    'start')
       su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart"
       su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
       ;;
    'stop')
       su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut"
       su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
       ;;
    restart) 
    stop 
    start 
    ;; 
    ln -s /etc/rc.d/init.d/dbora /etc/rc.d/rc6.d/K99dbora
      

  3.   

    不行啊,执行DBORA文件时出错
    ./dbora: line 4: -f: command not found
    cannot start!
      

  4.   

    start() { 
    . /oracle/.bash_profile 
    . /etc/rc.d/init.d/functions if [ ! -f /etc/sysconfig/network ]; then 
    exit 0 
    fi su -l oracle -c sqlplus /nolog > /dev/null <<! 
    connect / as sysdba 
    startup open 
    ! 启动改成这样