Linux下oracle开机自启动服务

如果每次重启操作系统都要进行以上操作好麻烦,那么如何让Oracle作为系统服务在开机的时候自动启动呢?

Oracle在$ORACLE_HOME/bin下提供许多对数据库进行操作的脚本,其中dbstart和dbshut可分别用来启动和关闭数据库。注意,这两个脚本已包含监听器的启动或关闭,但并未对EM进行相关的操作。使用如下命令:

/opt/oracle/11g/bin/dbstart /opt/oracle/11g #启动数据库实例(包含监听器)
/opt/oracle/11g/bin/dbshut /opt/oracle/11g #关闭数据库实例(包括监听器)

以上命令要成功启动数据库实例还得打开Oracle设置的一个关卡:vi /etc/oratab,修改行:

orcl:/opt/oracle/11g:Y #默认为orcl:/opt/oracle/11g:N

以root身份建立开机启动oracle服务的脚本:vi /etc/init.d/oracle,添加如下脚本:

#!/bin/sh
#chkconfig: 2345 20 80
#description: Oracle dbstart / dbshut
#以上两行为chkconfig所需
ORA_HOME=/opt/oracle/11g
ORA_OWNER=oracle
LOGFILE=/var/log/oracle.log
echo "#################################" >> ${LOGFILE}
date +"### %T %a %D: Run Oracle" >> ${LOGFILE}
if [ ! -f ${ORA_HOME}/bin/dbstart ] || [ ! -f ${ORA_HOME}/bin/dbshut ]; then
    echo "Error: Missing the script file ${ORA_HOME}/bin/dbstart or ${ORA_HOME}/bin/dbshut!" >> ${LOGFILE}
    echo "#################################" >> ${LOGFILE}
    exit
fi
start(){
    echo "###Startup Database..."
    su - ${ORA_OWNER} -c "${ORA_HOME}/bin/dbstart ${ORA_HOME}"
    echo "###Done."
    echo "###Run database control..."
    su - ${ORA_OWNER} -c "${ORA_HOME}/bin/emctl start dbconsole"
    echo "###Done."
}
stop(){
    echo "###Stop database control..."
    su - ${ORA_OWNER} -c "${ORA_HOME}/bin/emctl stop dbconsole"
    echo "###Done."
    echo "###Shutdown Database..."
    su - ${ORA_OWNER} -c "${ORA_HOME}/bin/dbshut ${ORA_HOME}"
    echo "###Done."
}
case "$1" in
    'start')
        start >> ${LOGFILE}
    ;;
    'stop')
        stop >> ${LOGFILE}
    ;;
    'restart')
        stop >> ${LOGFILE}
        start >> ${LOGFILE}
    ;;
esac
date +"### %T %a %D: Finished." >> ${LOGFILE}
echo "#################################" >> ${LOGFILE}
echo ""

使用如下命令将 /etc/init.d/oracle 置为可执行文件:

chmod a+x /etc/init.d/oracle

至此,可使用如下命令对oracle进行启动和关闭

/etc/init.d/oracle start #启动oracle(包括数据库实例、监听器、EM)
/etc/init.d/oracle stop #关闭oracle
/etc/init.d/oracle restart #重启oracle

将 oracle 添加到 chkconfig中:

chkconfig --add oracle

可使用如下命令查看和设置oracle服务的开机启动级别:

chkconfig | grep oracle #查看oracle服务的开机启动级别
chkconfig --level 24 oracle off #修改oracle服务的开机启动级别
chkconfig --level 35 oracle on

至此可使用如下命令对oracle的启动或关闭进行管理

service oracle start #启动
service oracle stop #关闭
service oracle restart #重启

 建立连接:

ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle   #关机执行
ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle   #重启执行

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Oracle 监听器无法启动(TNS-12555,TNS-12560,TNS-00525)

    启动监听器无法打开,报错! 1 [oracle@localhost ~]$ lsnrctl start 2 3 LSNRCTL for Linux: V...

    用户1154259
  • 记录安装oracle的那些事(四)之oracle 缺包安包

    解决缺包: pdksh-5.2.14问题 这次最后少一个包是  pdksh-5.2.14  这个包系统自己是安装不上的,只好从CSDN上下载下来 因为是 rar...

    用户1154259
  • JQuery学习思维导图版

    常用UI资源 参考资料:Jquery教程 dataTables:教程 中文教程 Wizard:教程 Jquery UI demos:教程 selectmenu:...

    用户1154259
  • Linux下建立Oracle服务及其开机自启动

    Java学习123
  • oracle java连接配置

    oracle客户端工具使用sqldeveloper,下载地址:http://www.oracle.com/technetwork/cn/developer-to...

    2Simple
  • 测试linux中expect的timeout参数的作用

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/msdnchina/article/details/50638...

    拓荒者
  • 002.Oracle安装部署-ASM

    安装包: linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip

    木二
  • Linux设置Oracle开机自启动

    kongxx
  • 001.Oracle安装部署-本地文件系统

    安装包:linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip

    木二
  • docker搭建oracle开发环境

    在docker环境中,我找了很久,发现wnameless/oracle-xe-11g 镜像还不错,很方便搭建起来。

    pollyduan

扫码关注云+社区

领取腾讯云代金券