温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

oracle 11.2.0.3 设置启动脚本使ORACLE自动启动

发布时间:2020-07-29 03:10:13 来源:网络 阅读:419 作者:sfih 栏目:关系型数据库

Linux下安装完后每次都得通过下面命令来启动对应的服务:

启动服务 dbstart 

启动监视器 lsnrctl start

启动控制台 emctl start dbconsole

本文以Red Hat Enterprise Linux 6.4 (x86_64)+oracle11G为例设置oracle开机自动启动:

方法一:

使用dbstart命令用于启动,具体方法如下

首先修改/etc/oratab文件,将orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N中的N改成Y,然后在/etc/rc.local添加下面几行

su - oracle -c '$ORACLE_HOME/bin/dbstart'
su - oracle -c '$ORACLE_HOME/bin/lsnrctl start'
su - oracle -c '$ORACLE_HOME/bin/emctl start dbconsole'


如果没有设置ORACLE_HOMEH环境变量,用绝对路径取代即可,如/dba/app/oracle/product/..

初次运行dbstart时,一般会有这个报错:

su - oracle -c "dbstart"

ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener

这个提示说明

启动oracle服务的同时没有启动oracle监听服务,因此如果想在启动oracle服务的同时i启动监听

就需要修改dbstart/dbshut,将ORACLE_HOME_LISTNER值设为$ORACLE_HOME(原来是为$1)

方法二:  

vi /etc/rc.local

把下面的内容加入

su - oracle -c "
export ORACLE_SID=orcl
sqlplus /nolog <<EOF
connect / as sysdba
startup;
exit;
EOF"
su - oracle -c '$ORACLE_HOME/bin/lsnrctl start'
su - oracle -c '$ORACLE_HOME/bin/emctl start dbconsole'


说明下上面脚本:

在shell脚本中,通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主Shell。

EOF只是一个分界符,当然也可以用abcde替换。

当shell遇到<<时,它知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。

此分界符可以是所定义的任何字符串,其实,不一定要用EOF,只要是“内容段”中没有出现的字符串,都可以用来替代EOF,完全可以换成abcde之类的字符串,只是一个起始和结束的标志罢了。

1,command<<EOF

(内容)

EOF


例如:

#!/bin/bash
#Filename:do.sh
su - oracle -c "
export ORACLE_SID=orcl
sqlplus /nolog <<EOF
connect / as sysdba
startup;
exit;
EOF"
sleep 5
su - oracle -c 
lsnrctl start

说明:

将“内容段”整个作为命令的输入。

用su命令读取整段命令,并逐行执行。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI