• 售前

  • 售后

热门帖子
入门百科

Oracle设置DB、监听和EM开机启动的方法

[复制链接]
风吹吹蛋蛋疼风w 显示全部楼层 发表于 2021-8-14 14:32:47 |阅读模式 打印 上一主题 下一主题
一、Windows体系

Oracle提供了随操作体系启动而启动的功能,在Windows和Linux中,分别有不同的设置方法。
在Windows中,可以修改“我的电脑-->管理-->服务-->OracleService$ORACLE_SID”,或直接使用Win+R键打开运行窗口,输入services.msc即可打开服务,找到相应的Oracle服务,然后将其属性中的启动类型修改成自动。一样寻常在Windows体系上安装完后会自动设置成自动。

二、Linux体系

对于Linux/Unix操作体系,假如想设置自动重启,那么该怎样操作呢?对此Oracle提供了dbstart下令用于启动。
首先,第一步,需要修改
  1. /etc/oratab
复制代码
文件,将N修改为Y
  1. [root@oracle ~]# vim /etc/oratab
  2. LHR11G:/u01/app/oracle/product/11.2.0.4/dbhome_1:Y     #将N改为Y
复制代码
文件
  1. /etc/oratab
复制代码
由root.sh脚本创建,在用dbca下令创建实例时也会更新这个文件。当
  1. $ORACLE_SID:$ORACLE_HOME:<N|Y>
复制代码
设置为Y时,允许实例自启动,当设置为N时,则不允许自启动。这个文件里的设置仅仅起一个开关的作用,其并不会具体的执行启动和关闭,具体的操作由
  1. $ORACLE_HOME/bin/dbstart
复制代码
和dbshut脚本来实现。这2个脚本在执行时会查抄
  1. /etc/oratab
复制代码
文件里的设置,为Y时才气继续执行。
接下来需要设置开机启动文件,有2种办法:
方法1:设置/etc/rc.d/rc.local文件(保举)

在设置了
  1. /etc/oratab
复制代码
文件后,然后将以下脚本添加到/etc/rc.d/rc.local或/etc/rc.local文件中(/etc/rc.local是/etc/rc.d/rc.local的软连接文件):
  1. cat >> /etc/rc.d/rc.local <<"EOF"
  2. # 重启DB
  3. export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1
  4. su oracle -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
  5. # 重启EM
  6. export ORACLE_UNQNAME=LHR11G
  7. su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
  8. EOF
复制代码
该方法需要留意以下标题:
1、若环境中没有创建EM,则可以不消添加ORACLE_UNQNAME和emctl这2行
2、从Oracle 12c开始,由于EMDE(Enterprise Manager Database Express)替换了原有的EMDC(Enterprise Manager Database Control),所以,不再单独设置EM相关内容,只需要设置DB即可,例如:
  1. cat >> /etc/rc.d/rc.local <<"EOF"
  2. # 重启DB
  3. export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
  4. su oracle -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
  5. EOF
复制代码
3、在CentOS 7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下下令赋予其可执行权限:
  1. chmod +x /etc/rc.d/rc.local
复制代码
最后就可以重启OS做测试工作了。
方法2:设置service服务

1. 创建启动脚本
使用root用户创建脚本
  1. /etc/rc.d/init.d/oracle
复制代码
,脚本内容如下,留意修改第6-9行的相关内容:
  1. #!/bin/bash
  2. # chkconfig: 2345 99 10
  3. # description: Startup Script for oracle Databases
  4. # /etc/rc.d/init.d/oracle
  5. export ORACLE_BASE=/u01/app/oracle/
  6. export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1
  7. export PATH=$PATH:$ORACLE_HOME/bin
  8. export ORACLE_UNQNAME=LHR11G
  9. echo " " >> /var/log/oraclelog
  10. echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
  11. case "$1" in
  12. start)
  13. echo "-----startup oracle-----" >> /var/log/oraclelog
  14. su oracle -c "$ORACLE_HOME/bin/dbstart"
  15. su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
  16. touch /var/lock/subsys/oracle
  17. echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
  18. echo "-----startup oracle successful-----" >> /var/log/oraclelog
  19. echo "OK"
  20. ;;
  21. stop)
  22. echo "-----shutdown oracle-----" >> /var/log/oraclelog
  23. su oracle -c "$ORACLE_HOME/bin/dbshut"
  24. su oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
  25. rm -f /var/lock/subsys/oracle
  26. echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelogg
  27. echo "-----shutdown oracle successful-----" >> /var/log/oraclelog
  28. echo "OK"
  29. ;;
  30. restart)
  31. echo "-----shutdown oracle-----" >> /var/log/oraclelog
  32. su oracle -c "$ORACLE_HOME/bin/dbshut"
  33. su oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
  34. rm -f /var/lock/subsys/oracle
  35. echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
  36. echo "-----shutdown oracle successful-----" >> /var/log/oraclelog
  37. echo "-----startup oracle-----" >> /var/log/oraclelog
  38. su oracle -c "$ORACLE_HOME/bin/dbstart"
  39. su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
  40. touch /var/lock/subsys/oracle
  41. echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
  42. echo "-----startup oracle successful-----" >> /var/log/oraclelog
  43. echo "OK"
  44. ;;
  45. *)
  46. echo "Usage: 'basename $0' start|stop|restart"
  47. exit 1
  48. esac
  49. exit 0
复制代码
2. 给脚本设置权限
  1. [root@oracle ~]# chmod 755 /etc/rc.d/init.d/oracle
复制代码
3.创建服务
  1. [root@oracle ~]# chkconfig --add oracle
  2. [root@oracle ~]# chkconfig oracle on
  3. [root@oracle ~]# chkconfig --list oracle
  4. oracle          0:off   1:off   2:on    3:on    4:on    5:on    6:off
复制代码
4.查抄是否生效
先使用root用户测试服务是否生效:
  1. [root@oracle ~]# service oracle stop
  2. [root@oracle ~]# service oracle start
  3. [root@oracle ~]# service oracle restart
复制代码
再重启OS,验证是否生效。
三、Oracle 18c版本

从Oracle 18c开始,对于单机环境来说,可以使用rpm包来直接安装Oracle软件,在安装完成后,会天生一个脚本,类似
  1. /etc/init.d/oracledb_$ORACLE_SID-$ORACLE_VERSION
复制代码
,该脚本可以用来启动和关闭Oracle软件,所以也可以使用该脚本来直接设置开机启动:
  1. cat >> /etc/rc.d/rc.local <<"EOF"
  2. /etc/init.d/oracledb_ORCLCDB-18c start
  3. /etc/init.d/oracledb_lhrsdb-18c start
  4. EOF
  5. chmod +x /etc/rc.d/rc.local
复制代码
重启OS,测试通过。
四、总结

对于这2种方法,需要留意的几个标题:
       
  • 若有多个实例,那么多个实例都会自动启动。   
  • 监听也会自动启动。   
  • 若数据库小于18c,则重启的详细日记为:
    1. $ORACLE_HOME/shutdown.log
    复制代码
    1. $ORACLE_HOME/startup.log
    复制代码
    。从Oracle 18c开始,dbstart的日记文件在
    1. $ORACLE_HOME/rdbms/log/startup.log
    复制代码
       
  • oracle用户的环境变量可以不消设置。   
    1. ORACLE_UNQNAME
    复制代码
    的作用是设置EM的环境变量,emctl是启动OEM,若没有则可以不消设置。   
    1. ORACLE_HOME
    复制代码
    的作用是设置数据库监听的环境变量。   
  • 对于Oracle 10.2.0.1来说,监听不能自动启动。需要修改脚本
    1. $ORACLE_HOME/bin/dbstart
    复制代码
    ,修改
    1. ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
    复制代码
    为“
    1. ORACLE_HOME_LISTNER=$1
    复制代码
    ”   
  • 对于ASM、RAC环境,只需要将数据库资源注册到CRS中,即可实现开机启动。   
  • 从Oracle 18c开始,可以使用脚本
    1. /etc/init.d/oracledb_$ORACLE_SID-$ORACLE_VERSION
    复制代码
    来启动Oracle数据库。   
  • 以上方法在Oracle 10g、11g、12cR1(12.1.0.2)、12cR2(12.2.0.1)、18c(12.2.0.2)和19c(12.2.0.3)中测试通过。
到此这篇关于Oracle设置DB、监听和EM开机启动的方法的文章就先容到这了,更多相关Oracle设置DB、监听和EM开机启动内容请搜索草根技术分享从前的文章或继续浏览下面的相关文章盼望大家以后多多支持草根技术分享!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作