文档章节

Linux下建立Oracle服务及其开机自启动

w
 wilim2009
发布于 2017/08/30 17:19
字数 908
阅读 7
收藏 0
点赞 0
评论 0

说明:以下操作环境在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状态

1.手工启动Oracle实例,可用sqlplus建立一个idle instance,然后再用startup启动,如下:

数据库实例启动之后,需启动监听器,才能让远程用户建立连接。可使用如下命令启动监听器:

lsnrctl start

 

Oracle还提供网页版的管理器,要使用该管理器需启动相关服务,使用如下命令启动:

emctl start dbconsole

 

至此,可在web浏览器中输入:https://{主机IP 或 主机名 或 本地localhost}:1158/em,打开管理器,使用相关帐号登录进行数据库查看和管理。


 

2.开机自动重启

如果每次重启操作系统都要进行以上操作好麻烦,那么如何让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   #重启执行

© 著作权归作者所有

共有 人打赏支持
w
粉丝 2
博文 11
码字总数 6931
作品 0
东城
程序员

暂无文章

面试宝典-Mysql引擎Innodb和MyISAM区别

InnoDB表的行锁也不是绝对的,假如在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”   两种类型最主要的差别...

suyain
7分钟前
0
0
mesos:Authentication timed out

最近当slave开始慢慢部署异地集群的时候又碰上了这个问题 I0717 10:27:11.695762 28852 slave.cpp:895] New master detected at master@192.168.2.161:5050I0717 10:27:11.695811 28852 sl......

xueyi28
12分钟前
0
0
赋予用户库的读写权限

1、创建用户 CREATE USER 'test'@'%' IDENTIFIED BY '15ht46389012t'; #'%' - 所有情况都能访问;‘localhost’ - 本机才能访问;’192.168.1.2‘ - 指定 ip 才能访问 2、赋予权限 grant al...

xixingzhe
13分钟前
0
0
Spring核心——JSR250与资源控制

JSR-175与元编程 要说明JSR-250先要解释清楚JSR-175,要解释清楚JSR就的先了解JCP是什么。网上资料很多,就不细说了,简单的说JCP(Java Community Process)是管理Java生态(包括J2SE、J2E...

随风溜达的向日葵
14分钟前
0
0
Java面试基础篇——第五篇:类的实例化顺序

类的实例化顺序:包括 1.父类静态数据,构造函数,字段;2.子类静态数据,构造函数,字段等, 当我们new一个对象的时候,类实例化的顺序是怎么样的呢? OK.还是上代码比较实在(我就是个实在...

developlee的潇洒人生
15分钟前
0
0
引入mui.css出现闪屏问题

自己写的选项卡切换功能,引入了mui.css样式,当我切换选项卡时,页面会出现闪动,当我把mui.css注释掉后页面就不会出现闪动问题,由于mui.css文件太大,我也不知道什么属性引起的闪屏,所以...

爱喝水的小熊
18分钟前
0
0
大家都在学的编程语言 Python,可以用来干什么?

编者按:Python因为简单全面易用而成为近年来大热的编程语言。但是很多人学习了这门余元的语法和基本功能之后却不知道Python能干什么以及怎么做。Realpython.com上面的一篇文章于是把Python可...

Python燕大侠
34分钟前
1
0
学习大数据必备的5大核心技术,你知道几个?需要掌握哪些知识?

大数据已经成为时代发展的趋势,很多人纷纷选择学习大数据,想要进入大数据行业。大数据技术体系庞大,包括的知识较多,系统的学习大数据可以让你全面掌握大数据技能。学习大数据需要掌握哪些...

董黎明
44分钟前
1
0
深入理解阿里分布式消息中间件

什么是分布式消息中间件 什么是分布式消息中间件? 对于分布式消息中间件,首先要了解两个基础的概念,即什么是分布式系统,什么又是中间件。 分布式系统: “A distributed system is one i...

Java填坑之路
46分钟前
1
0
如何将变量值为字符串true或false转为Boolean型

”true“ === ’true‘ 返回boolean为true “false“=== ’true‘ 返回boolean为false console.log(变量值 === ‘true’); 输出到控制台即可测试。...

人来疯啊
53分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部