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


Posted in Oracle onApril 25, 2021

一、Windows系统

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

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

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

二、Linux系统

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

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

[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_SID:$ORACLE_HOME:<N|Y>设置为Y时,允许实例自启动,当设置为N时,则不允许自启动。这个文件里的配置仅仅起一个开关的作用,其并不会具体的执行启动和关闭,具体的操作由$ORACLE_HOME/bin/dbstart和dbshut脚本来实现。这2个脚本在执行时会检查/etc/oratab文件里的配置,为Y时才能继续执行。

接下来需要配置开机启动文件,有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的软连接文件):

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即可,例如:

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的权限被降低了,所以需要执行如下命令赋予其可执行权限:

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

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

方法2:配置service服务

1. 建立启动脚本

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

#!/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. 给脚本设置权限

[root@oracle ~]# chmod 755 /etc/rc.d/init.d/oracle

3.建立服务

[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用户测试服务是否生效:

[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_SID-$ORACLE_VERSION,该脚本可以用来启动和关闭Oracle软件,所以也可以使用该脚本来直接配置开机启动:

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/shutdown.log$ORACLE_HOME/startup.log。从Oracle 18c开始,dbstart的日志文件在$ORACLE_HOME/rdbms/log/startup.log
  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_SID-$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)中测试通过。

到此这篇关于Oracle设置DB、监听和EM开机启动的方法的文章就介绍到这了,更多相关Oracle设置DB、监听和EM开机启动内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Oracle 相关文章推荐
oracle表分区的概念及操作
Apr 24 Oracle
Oracle创建只读账号的详细步骤
Jun 07 Oracle
快速学习Oracle触发器和游标
Jun 30 Oracle
oracle索引总结
Sep 25 Oracle
Oracle安装TNS_ADMIN环境变量设置参考
Nov 01 Oracle
使用Oracle命令进行数据库备份与还原
Dec 06 Oracle
oracle重置序列从0开始递增1
Feb 28 Oracle
清空 Oracle 安装记录并重新安装
Apr 26 Oracle
instantclient客户端 连接oracle数据库
Apr 26 Oracle
Oracle锁表解决方法的详细记录
Jun 05 Oracle
在Oracle表中进行关键词搜索的过程
Jun 10 Oracle
Oracle笔记
Apr 05 #Oracle
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
Apr 06 #Oracle
ORACLE数据库对long类型字段进行模糊匹配的解决思路
Oracle 数据仓库ETL技术之多表插入语句的示例详解
oracle表分区的概念及操作
Apr 24 #Oracle
mybatis使用oracle进行添加数据的方法
Apr 27 #Oracle
使用springboot暴露oracle数据接口的问题
You might like
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
2015/09/14 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
JScript实现地址选择功能
2017/08/15 Javascript
Windows安装Node.js报错:2503、2502的解决方法
2017/10/25 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
node.js的Express服务器基本使用教程
2019/01/09 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
2019/10/22 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
2020/01/02 Javascript
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
Python Tkinter GUI编程入门介绍
2015/03/10 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
详细讲解Python中的文件I/O操作
2015/05/24 Python
python列表的常用操作方法小结
2016/05/21 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
详解Python字符串切片
2019/05/20 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
军训心得体会
2013/12/31 职场文书
作文评语集锦大全
2014/04/23 职场文书
小班下学期评语
2014/05/04 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
六一儿童节活动总结
2014/08/27 职场文书
营销与策划实训报告
2014/11/05 职场文书
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电