Oracle Linux 7:使用 init.d 自动启动 Oracle

Oracle Linux 7:使用 init.d 自动启动 Oracle

我尝试在我的 Oracle Linux 7.3 机器上通过 init.d 使 Oracle 12.1.0.2.0 随系统启动。

我按照这个例子:https://oracle-base.com/articles/linux/automating-database-startup-and-shutdown-on-linux

这是我启动数据库的脚本:

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the 
# Oracle database in ORA_HOME.

ORA_HOME=/u01/app/oracle/product/12.1.0.2/db_1
ORA_OWNER=oracle

case "$1" in
    'start')
        # Start the Oracle databases:
        # The following command assumes that the oracle login 
        # will not prompt the user for any values
        # Remove "&" if you don't want startup as a background process.
        su $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" &
        su $ORA_OWNER -c $ORA_HOME/bin/dbstart &
        touch /var/lock/subsys/dbora
        ;;
    'stop')
        # Stop the Oracle databases:
        # The following command assumes that the oracle login 
        # will not prompt the user for any values
        su $ORA_OWNER -c $ORA_HOME/bin/dbshut
        su $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
        rm -f /var/lock/subsys/dbora
        ;;
esac

开始时什么也没有发生。我在/etc/rc0.d和中创建了软链接/etc/rc3.d

ln -s /etc/init.d/dbora /etc/rc0.d/K10dbora
ln -s /etc/init.d/dbora /etc/rc3.d/S99dbora
chkconfig --level 2345 dbora on

chkconfig列出了dbora.shrunlevel 2345

使用简短的脚本手动启动效果很好,如下所示:

#!/bin/sh
$ORACLE_HOME/bin/lsnrctl start
$ORACLE_HOME/bin/dbstart

我缺少什么?

答案1

感谢 wurtel,我找到了解决方案。为了让 Oracle DB 在机器上运行,我必须使用 systemd。这是它的指南: https://oracle-base.com/articles/linux/automating-database-startup-and-shutdown-on-linux#oracle-11gr2-update

请按照 Oracle 11gR2+ 部分(最后一节)了解如何创建startup.sh 和shutdown.sh。然后按照本教程设置单元文件: https://oracle-base.com/articles/linux/linux-services-systemd#creating-linux-services

奇迹般有效 :)

相关内容