说明:以下操作环境在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 startOracle还提供网页版的管理器,要使用该管理器需启动相关服务,使用如下命令启动:

代码如下:

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服务的开机启动级别:

代码如下:

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 #重启执行

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

oracle启动shell脚本编写,Linux下的Oracle启动脚本及其开机自启动相关推荐

  1. Linux下Nginx编译安装后的开机自启动设置

    Linux下Nginx编译安装后的开机自启动设置 一.查看当前Nginx启动状态 二.而配置Nginx相关服务文件 三 .设置nginx命令 四.设置开机启动 五.测试开机启动 一.查看当前Nginx ...

  2. linux启动sh文件命令,Linux下如何写 .sh 脚本启动 项目

    Linux下如何写 .sh 脚本启动 项目 创建文件   mealcoupon.sh 内容如下: #!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=xhqy_ ...

  3. Linux启动shell的快捷方式,Linux下为可执行shell脚本文件(.sh),制作桌面启动快捷方式...

    自装软件默认安装目录为 /usr/local,而生成的应用程序可执行图标(文件)放置在/usr/local/share/applications 目录下,以XXX.desktop 文件形式存在.以xx ...

  4. linux下新建一个脚本文件,linux下新建并启动脚本文件

    1.书写一个linux脚本文件: 2. 修改3个参数:Name,服务名称: Path:路径: Assembly:具体应用的程序: 3.进入目录/etc/init.d# (Linux启动项目): 4.将 ...

  5. linux 脚本 input,Linux 下通过命令行和脚本开关笔记本触控板和其他输入外设

    使用xinput命令,可以查看和更改当前系统的输入设备状态. xinput -list可以查看当前系统存在的输入设备和其id$ xinput -list ⎡ Virtual core pointer ...

  6. mysql自动备份脚本linux_一个Mysql自动备份脚本,定时备份MYSQ脚本,linux下Mysql自动备份脚本...

    本文转自:http://hi.baidu.com/visual_art/item/6713e2091b41ea33a2332a15 #!/bin/bash #This is a ShellScript ...

  7. linux启动nfs守护进程,linux下搭建nfs共享并实现开机自动挂载的具体操作

    1.安装 1)查看系统是否已安装NFS 2)如果当前系统中没有安装NFS所需的软件包,需要手工进行安装. yum install -y nfs-utils 这时所需要的两个包 nfs和rpcbind都 ...

  8. linux启停was命令,linux下的启停脚本

    linux下的根据项目名称,进行进程的启停脚本 #!/bin/bash JAVA=/usr/bin/java APP_HOME=/opt/program/qa/wechat APP_NAME=prog ...

  9. linux 日志压缩及清理,linux下的日志压缩脚本

    linux下的日志压缩脚本: #!/bin/bash #第一步:先定义项目列表如下: projects="project-a project-b project-c project-d&qu ...

最新文章

  1. 数据蒋堂 | 文件的性能分析
  2. 计算机一级ms office选择题,2012计算机一级MsOffice选择题及答案(1)
  3. 跨屏html ui,Amaze UI(HTML5 跨屏前端框架) v2.7.2
  4. linux编译内核支持pam,linux编译内核make menuconfig报错解决办法
  5. 微盟CEO孙涛上市致辞:曾豪言30岁前不敲一次钟 人生都不完整
  6. 用C#把文件转换为XML
  7. caffe上手:修改已训练好的网络并训练模型
  8. fiddler抓包教程
  9. 【控制工程】PID控制的原理和特点
  10. mx播放器有没有投屏功能_手机太小看电视不方便?教你一招迅速投屏到电视
  11. 逆反西游无法读取服务器信息,逆反西游
  12. 【歪门邪道】想要敲代码爽,桌面一定要酷炫
  13. 计算机按哪里有音乐键,电脑键盘声音键是哪个 怎么打开电脑键盘声音键 - 驱动管家...
  14. 云服务器配置java环境
  15. 外汇交易提醒:美元三连阴创逾一周新低,欧洲央行或准备更大幅度加息
  16. 约束优化求解之罚函数法
  17. 如何解决Visual Studio编译错误,即“处理器体系结构之间的不匹配”?
  18. sonar java 编译_Sonar编译问题对应:File [...] can't be indexed twice.
  19. 软件测试需要学什么?软件测试难学吗?简单几句让你认识
  20. 赛诺贝斯B2B营销研习社|一场直播>20篇微信推文?B2B直播要点全解析(内附SOP流程图)

热门文章

  1. 雅虎通可以批量添加MSN用户了
  2. byte的取值范围-128~127原理
  3. python编写凯撒密码的加密函数_python实现 古典密码 凯撒密码的加密与解密
  4. JAva中的自然排序是什么意思_Java中的自然排序顺序字符串比较 – 是内置的吗?...
  5. 计算机系统的备份与还原实验报告,数据备份与数据恢复实验报告
  6. Microsoft Virtual Earth 浅谈!
  7. CSDN/博客园等博客的文章搬家到wordpress网站
  8. 《Python数据分析基础教程:NumPy学习指南(第2版)》笔记4:第二章 NumPy基础3——数组的组合、分割,数组转换为列表
  9. css设置图片不显示的原因总结
  10. 凡客紧缩之困:极致单品难撑大局 小米化或为了出售