linux 脚本启动oracle,Linux下的Oracle启动脚本及其开机自启动

说明:以下操作环境在CentOS 6.4 + Oracle 11gR2(Oracle安装在ORACLE_BASE=/opt/oracle中,其ORACLE_HOME=/opt/oracle/11g)

用OUI安装并配置Oracle数据库后,Oracle就开启了(包括:数据库实例、监听器、EM)。在重启操作系统之后,Oracle默认是没有启动的。使用如下命令查看Oracle相关服务是否已启动:

ps aux | grep ora_ #若无ora_**_**相关的进程,则oracle数据库实例未启动

netstat -tlnup | grep 1521 #若无任何显示,则监听器未启动

lsnrctl status #查看监听器状态

netstat -tlnup | grep 1158 #若无任何显示,则EM未启动

emctl status dbconsole #查看EM状态

手工启动Oracle实例,可用sqlplus建立一个idle instance,然后再用startup启动,如下:

数据库实例启动之后,需启动监听器,才能让远程用户建立连接。可使用如下命令启动监听器:

复制代码 代码如下:

lsnrctl start

Oracle还提供网页版的管理器,要使用该管理器需启动相关服务,使用如下命令启动:

复制代码 代码如下:

emctl start dbconsole

至此,可在web浏览器中输入:https://{主机IP 或 主机名 或 本地localhost}:1158/em,打开管理器,使用相关帐号登录进行数据库查看和管理。

如果每次重启操作系统都要进行以上操作好麻烦,那么如何让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服务的开机启动级别:

复制代码 代码如下:

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值