Loading [MathJax]/jax/output/CommonHTML/jax.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【DB宝49】Oracle如何设置DB、监听和EM开机启动

【DB宝49】Oracle如何设置DB、监听和EM开机启动

作者头像
AiDBA宝典
发布于 2021-04-30 06:49:02
发布于 2021-04-30 06:49:02
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
一、Windows系统
二、Linux系统
  方法1:配置/etc/rc.d/rc.local文件(推荐)
  方法2:配置service服务
三、Oracle 18c版本
四、总结

一、Windows系统

Oracle提供了随操作系统启动而启动的功能,在WindowsLinux中,分别有不同的设置方法。

在Windows中,可以修改“我的电脑-->管理-->服务-->OracleService$ORACLE_SID”,或直接使用Win+R键打开运行窗口,输入services.msc即可打开服务,找到相应的Oracle服务,然后将其属性中的启动类型修改成自动。一般在Windows系统上安装完后会自动设置成自动。

二、Linux系统

对于Linux/Unix操作系统,如果想设置自动重启,那么该如何操作呢?对此Oracle提供了dbstart命令用于启动。

首先,第一步,需要修改/etc/oratab文件,将N修改为Y

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@oracle ~]#vim /etc/oratab
LHR11G:/u01/app/oracle/product/11.2.0.4/dbhome_1:Y     #将N改为Y

文件/etc/oratab由root.sh脚本创建,在用dbca命令创建实例时也会更新这个文件。当ORACLE_HOME:<N|Y>设置为Y时,允许实例自启动,当设置为N时,则不允许自启动。这个文件里的配置仅仅起一个开关的作用,其并不会具体的执行启动和关闭,具体的操作由

接下来需要配置开机启动文件,有2种办法:

方法1:配置/etc/rc.d/rc.local文件(推荐)

在配置了/etc/oratab文件后,然后将以下脚本添加到/etc/rc.d/rc.local或/etc/rc.local文件中(/etc/rc.local是/etc/rc.d/rc.local的软连接文件):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat >> /etc/rc.d/rc.local <<"EOF"
# 重启DB
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1
su oracle -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"

# 重启EM
export ORACLE_UNQNAME=LHR11G
su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
EOF

该方法需要注意以下问题: 1、若环境中没有创建EM,则可以不用添加ORACLE_UNQNAME和emctl这2行

2、从Oracle 12c开始,由于EMDE(Enterprise Manager Database Express)替代了原有的EMDC(Enterprise Manager Database Control),所以,不再单独设置EM相关内容,只需要配置DB即可,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat >> /etc/rc.d/rc.local <<"EOF"
# 重启DB
export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
su oracle -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
EOF

3、在CentOS 7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod +x /etc/rc.d/rc.local

最后就可以重启OS做测试工作了。

方法2:配置service服务

1. 建立启动脚本

使用root用户创建脚本/etc/rc.d/init.d/oracle,脚本内容如下,注意修改第6-9行的相关内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash 
# chkconfig: 2345 99 10 
# description: Startup Script for oracle Databases 
# /etc/rc.d/init.d/oracle

export ORACLE_BASE=/u01/app/oracle/
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_UNQNAME=LHR11G

echo " " >> /var/log/oraclelog
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog

case "$1" in
start)
echo "-----startup oracle-----" >> /var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbstart"
su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
echo "-----startup oracle successful-----" >> /var/log/oraclelog
echo "OK" 
;;

stop)
echo "-----shutdown oracle-----" >> /var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbshut"
su oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelogg
echo "-----shutdown oracle successful-----" >> /var/log/oraclelog
echo "OK" 
;;

restart)
echo "-----shutdown oracle-----" >> /var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbshut"
su oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
echo "-----shutdown oracle successful-----" >> /var/log/oraclelog

echo "-----startup oracle-----" >> /var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbstart"
su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
echo "-----startup oracle successful-----" >> /var/log/oraclelog
echo "OK" 
;;

*)
echo "Usage: 'basename $0' start|stop|restart" 
exit 1
esac
exit 0

2. 给脚本设置权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@oracle ~]# chmod 755 /etc/rc.d/init.d/oracle

3.建立服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@oracle ~]# chkconfig --add oracle
[root@oracle ~]# chkconfig oracle on
[root@oracle ~]# chkconfig --list oracle
oracle          0:off   1:off   2:on    3:on    4:on    5:on    6:off

4.检查是否生效

先使用root用户测试服务是否生效:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@oracle ~]# service oracle stop
[root@oracle ~]# service oracle start
[root@oracle ~]# service oracle restart

再重启OS,验证是否生效。

三、Oracle 18c版本

从Oracle 18c开始,对于单机环境来说,可以使用rpm包来直接安装Oracle软件,在安装完成后,会生成一个脚本,类似/etc/init.d/oracledb_ORACLE_VERSION,该脚本可以用来启动和关闭Oracle软件,所以也可以使用该脚本来直接配置开机启动:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat >> /etc/rc.d/rc.local <<"EOF"
/etc/init.d/oracledb_ORCLCDB-18c start
/etc/init.d/oracledb_lhrsdb-18c start
EOF

chmod +x /etc/rc.d/rc.local

重启OS,测试通过。

四、总结

对于这2种方法,需要注意的几个问题:

  1. 若有多个实例,那么多个实例都会自动启动。
  2. 监听也会自动启动。
  3. 数据库小于18c,则重启的详细日志为:ORACLE_HOME/startup.log。从Oracle 18c开始,dbstart的日志文件
  4. oracle用户的环境变量可以不用配置。
  5. ORACLE_UNQNAME的作用是设置EM的环境变量,emctl是启动OEM,若没有则可以不用设置。
  6. ORACLE_HOME的作用是设置数据库监听的环境变量。
  7. 对于Oracle 10.2.0.1来说,监听不能自动启动。需要修改脚本$ORACLE_HOME/bin/dbstart,修改ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle为“ORACLE_HOME_LISTNER=$1”
  8. 对于ASM、RAC环境,只需要将数据库资源注册到CRS中,即可实现开机启动。
  9. 从Oracle 18c开始,可以使用脚本/etc/init.d/oracledb_ORACLE_VERSION来启动Oracle数据库
  10. 以上方法在Oracle 10g、11g、12cR1(12.1.0.2)、12cR2(12.2.0.1)、18c(12.2.0.2)和19c(12.2.0.3)中测试通过。

本文结束。


• 微信公众号:DB宝,作者:小麦苗 • 作者博客地址:http://blog.itpub.net/26736162/ • 作者微信:db_bao • 作者QQ:646634621,QQ群:230161599、618766405 • 提供Oracle OCP、OCM、高可用(rac+dg+ogg)和MySQL DBA培训 • 版权所有,欢迎分享本文,转载请保留出处 • 若有侵权请联系小麦苗删除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DB宝分享的IT资料:https://mp.weixin.qq.com/s/Iwsy-zkzwgs8nYkcMz29ag
★DB宝笔试面试详解:https://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【DB笔试面试863】在Oracle中,如何让Oracle DB、监听和oem开机启动?
【DB笔试面试863】在Oracle中,如何让Oracle DB、监听和oem开机启动?
AiDBA宝典
2020/08/27
2.6K0
【DB笔试面试863】在Oracle中,如何让Oracle DB、监听和oem开机启动?
Red Hat Enterprise Linux 7.4下设置Oracle开机自动启动
在Linux系统中,安装好Oracle数据库服务后,并不像在Windows系统下一样,Oracle服务在默认情况下会随系统的启动自动启动。Linux系统中,是需要用户去手动进行设置,才能实现Oracle开机自动启动的。本文将一步一步教你如何进行设置。
星哥玩云
2022/08/18
2.1K0
Red Hat Enterprise Linux 7.4下设置Oracle开机自动启动
在Linux下安装配置Oracle11g R2
最近在安装Linux下的Oracle环境,折腾了很久,遇到了不少问题,最后终于搞定了,于是写下此文,记录安装过程,以备后用。
深蓝studyzy
2022/06/16
8320
CentOS6.9下Oracle11gR2数据库的创建并设置开机自启动脚本
1、打开Xmanager-Passive,然后用oracle用户登录数据库服务器SSH后台后输入dbca,启动图形化数据库创建向导界面
yuanfan2012
2019/06/02
9780
Oracle 单实例如何开机自启动
在前面一文中,介绍了数据库主机重启排查的思路与方法,其中提到了一句数据库开机自启动的事情,有朋友问到这里就在唠叨几句,当你的数据库是 RAC 架构时,只要你停止集群件时使用 crsctl stop crs 停止,默认情况下数据库实例直接 abort 停止,重启主机 OS 后会伴随着 CRS 集群件自动启动;但如果当你 “SQLPLUS” 先进入到数据库中,使用 “shu immediate” 停止数据库实例后,在 crsctl stop crs 停止集群件,则重启主机无法拉起实例,需要手动启动,所以一般情况下我都会直接 crsctl stop crs 直接停止集群件。
JiekeXu之路
2023/02/24
1.4K0
Oracle 单实例如何开机自启动
centos安装oracle
切换root用户 1、建用户 groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle id oracle 2、配置文件路径 mkdir /u01/oracle/app/oraInventory #oracle数据库安装目录 mkdir /u01/oracle/app/oracle #oracle数据库配置文件目录 mkdir /u01/oracle/app/oracle/product #oracle数据库软件包解压目录 3、配置目录权限 chown -R oracle:oinstall /u01/oracle 4、配置镜像 mkdir /media/iso 拷贝镜像源到指定位置,比如 /software/CentOS-7-x86_64-DVD-1708.iso mount -t iso9660 /software/CentOS-7-x86_64-DVD-1708.iso /media/iso/ df -h #查看 cd /etc/yum.repos.d/ rm -rf * #删除前先备份 vi local-centos7-iso.repo #内容如下: ############################################################################## [Server] name=Server baseurl=file:///media/iso enabled=1 gpgckeck=0 ############################################################################## yum clean all yum update
sucl
2019/08/07
1.1K1
centos7安装oracle11g
成功运行后,在/u01/app/oracle/product/11.2.0/network/admin/中生成listener.ora和sqlnet.ora
青丝束马尾
2025/04/19
1070
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数据库实例未启动 netst
Java学习123
2018/05/16
3.2K0
Centos7静默安装Oracle11g
数据盘未做格式化分区(这里仅格式化并挂载到单独目录,不做分区) 根据内存大小需要对此操作系统重新分配合适的swap空间(这里增加到16G),关于swap分区大小可参考红帽官方说明
仙人技术
2020/11/05
1K0
Oracle设置开机自启
4:编辑/etc/rc.d/rc.local启动文件,添加数据库启动脚本dbstart
Cyylog
2020/08/19
1.1K0
系统开关机时oracle自启动和关闭脚本(for aix和linux)
作为一名oracle DBA,有没有遇到过大半夜被电话吵醒,被告知服务器故障重启了,现在数据库服务不可用,麻烦回来启动下数据库?
吹水老王
2022/05/17
3.5K0
linux oracle 安装环境设置脚本
脚本连接:https://github.com/ddcw/shell/blob/master/oracle_checkENV.sh
大大刺猬
2020/04/19
1.3K0
Linux下设置Oracle自启动
测试机总是断电,导致重启后Oracle不自动重启,需要手工操作,因此可以设置成自启动模式。
bisal
2019/01/29
2.5K0
Oracle数据库开机自启大法好
注意:其中ora.orcl.db需要根据实际情况来填写。输出结果为 restore 即未开启。
Lucifer三思而后行
2021/08/17
1.2K0
在CentOS7下安装Oracle11教程
安装oracle时,发现网上的文章总是缺少一些信息,导致安装不顺利,因为我对一些文章进行了整合,用以备忘。
Kiba518
2023/03/08
6470
在CentOS7下安装Oracle11教程
【DB笔试面试849】在Oracle中,在没有配置ORACLE_HOME环境变量的情况下,如何获取ORACLE_HOME目录?
在Oracle中,在没有配置ORACLE_HOME环境变量的情况下,如何快速获取数据库软件的ORACLE_HOME目录?
AiDBA宝典
2020/07/30
2.1K0
Oracle如何设置DB、监听和EM开机启动
Oracle提供了随操作系统启动而启动的功能,在Windows和Linux中,分别有不同的设置方法。
用户8965210
2021/10/14
1.1K0
Linux下oracle开机自启动服务
如果每次重启操作系统都要进行以上操作好麻烦,那么如何让Oracle作为系统服务在开机的时候自动启动呢? Oracle在$ORACLE_HOME/bin下提供许多对数据库进行操作的脚本,其中dbstart和dbshut可分别用来启动和关闭数据库。注意,这两个脚本已包含监听器的启动或关闭,但并未对EM进行相关的操作。使用如下命令: /opt/oracle/11g/bin/dbstart /opt/oracle/11g #启动数据库实例(包含监听器) /opt/oracle/11g/bin/dbshut /opt
用户1154259
2018/01/18
6.1K0
oracle11g安装
青丝束马尾
2024/10/27
450
oracle11g安装
实战:如何在 LINUX 8.0 上安装 Oracle 11.2.0.4(文内有快速配置安装脚本)
写这个测试的主要原因是前一阵群里大佬们一直在讨论如何在REDHAT8.0上安装ORACLE 11G,我还好奇了,现在一般不是都用7.9来跑11G么
JiekeXu之路
2024/04/15
1.2K0
实战:如何在 LINUX 8.0 上安装 Oracle 11.2.0.4(文内有快速配置安装脚本)
推荐阅读
相关推荐
【DB笔试面试863】在Oracle中,如何让Oracle DB、监听和oem开机启动?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验