linux oracle11g开机,Linux 下Oracle11g 自动随系统启动

安装完毕 Oracle 11g 每次都得手动启动 | 停止数据库(dbstart | dbshut)、监听器(lsnrctl)、控制台(emtcl),以下步骤实现数据库的自动启动:

1.首先修改/etc/oratab文件#vi

/etc/oratab

找到orcl=/u01/app/oracle/product/11.1.0/db_1:N这一行

改为:

orcl=/u01/app/oracle/product/11.1.0/db_1:Y

也就是将最后的N改为Y,意思是将不允许自动启动改为允许自动启动。

2.修改ORACLE自带的启动与关闭脚本,

分别是dbstart和

dbshut。执行这两个脚本就可以实现ORACLE脚本的启动与关闭。在oracle账户下修改$ORACLE_HOME/bin/dbstart文件

#su

-oracle

$cd $ORACLE_HOME/bin

$vi

dbstart

找到ORACLE_HOME_LISTNER=$1这一行

改为:ORACLE_HOME_LISTNER=$ORACLE_HOME

之所以做这一步,是因为在这个脚本自动生成的时候,也就是ORACLE被安装进RHEL的时候,这个脚本并不知道你的ORACLE_HOME_LISTNER是什么,现在要将这个参数显示的写明,这样就不会在执行这个脚本的时候报ORACLE_HOME_LISTNER没有被指定的错误了。注意:dbstart和dbshut脚本在10g之后就已经将监听器的启动与关闭合并进数据库实例的启动与关闭脚本里面了。而不再是单独分开的了。

同样的方式,我们也要修改dbshut的这个参数。这里就不再详细写出了,他们在同一个目录下。

3.写一个脚本,把它注册为一个系统服务,让它在开机与关机的时候运行。它的作用就是调用并执行dbstart和dbshut。这样不就实现了数据库启动与关闭了吗?!这个脚本被放在/etc/init.d目录中,脚本的名字是oracle11

脚本如下:

# !/bin/sh

# chkconfig: 345 61 61

# description: Oracle 11g AutoRun Services

# /etc/init.d/oracle

#

# Run-level Startup script. for the Oracle Instance, Listener, and

# Web Interface

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID=ORCL

export PATH=$PATH:$ORACLE_HOME/bin

ORA_OWNR="oracle"

# if the executables do not exist -- display error

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]

then

echo "Oracle startup: cannot start"

exit 1

fi

# depending on parameter -- startup, shutdown, restart

# of the instance and listener or usage display

case "$1" in

start)

# Oracle listener and instance startup

su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart

touch /var/lock/subsys/oracle11

su $ORA_OWNR -lc "$ORACLE_HOME/bin/emctl start dbconsole"

echo "Oracle Start Succesful!OK."

;;

stop)

# Oracle listener and instance shutdown

su $ORA_OWNR -lc "$ORACLE_HOME/bin/emctl stop dbconsole"

su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut

rm -f /var/lock/subsys/oracle11

echo "Oracle Stop Succesful!OK."

;;

reload|restart)

$0 stop

$0 start

;;

*)

echo $"Usage: `basename $0` {start|stop|reload|reload}"

exit 1

esac

exit 0

保存并退出。

这段脚本的关键解释:

第一:#chkconfig:345 99

10虽是一行注释,但是确实关键的必不可少的一行,除非你不用chkconfig命令来自动生成符号连接文件,而是完全采用手工创建。否则没有这一行,执行chkconfig系统将会报出oracle11没有chkconfig服务权限的错误。

第二:su

oracle -c $ORACLE_HOME/bin/dbstart和touch

/var/lock/subsys/oracle11这两行的作用是首先执行dbstart脚本启动oracle,然后在服务活动列表目录中创建一个与oracle11这个服务同名的一个文件,表示这个服务是活动的,也就是被启动的。而su

oracle -c $ORACLE_HOME/bin/dbshut和rm -f

/var/lock/subsys/oracle11这两行的作用是首先执行dbshut急哦脚本关闭oracle,然后从服务活动列表目录中删除那个与oracle11同名的那个文件,表示这个服务不是活动的,也就是已经被关闭。

那么为什么要做touch

/var/lock/subsys/oracle11和rm -f

/var/lock/subsys/oracle11这两步呢?原因是跟LINUX系统的机制有关的:LINUX的判别一个服务是否被启动的依据是在/var/lock/subsys/目录下是否与服同名的文件,若有则表示这个服务已经被启动了,在系统关闭的时候,LINUX会把这里面列出的服务全部关闭,并删掉与服务同名的文件。若一个服务被启动了,但却在这个目录里没有那个服务的同名文件,则不会关闭那个服务。网上的文章均将这个地方设置错了,所以会发现,ORACLE可以随系统启动了,但却没有随系统关闭。我也是分析了/etc/rc.d/rc.local后才发现这个原理的。经过试验,果然如此。再分析mysql的启动与关闭脚本也是这样做的,最终恍然大悟

原来如此。这个地方请大家注意了。

4.将这个脚本注册成为一个系统服务

方法有二:

其一:先给脚本分配可以被执行的权限。执行下面命令:

#su-root

chown

oracle /etc/init.d/oracle11

chmod 775

/etc/init.d/oracle11

-------[root@oracle init.d]# chmod 750 /etc/init.d/oracle

-------链接:

-------[root@oracle init.d]# ln -s /etc/init.d/oracle /etc/rc1.d/K61oracle

-------[root@oracle init.d]# ln -s /etc/init.d/oracle /etc/rc3.d/S61oracle

-------执行以下命令:

-----[root@oracle init.d]# chkconfig --level 345 oracle on   (参数--level 为两个"-" ,下同)

-----[root@oracle init.d]# chkconfig --add oracle          // 添加到服务里

再创建符号链接文件。

chkconfig --add

/etc/init.d/oracle11,执行这个命令就需要你在脚本中写上#chkconfig:3459910了。这样当这个命令被执行的时候,回去oracle11文件中寻找这行注释,并解析这行注释,根据解析结果分别在/etc/rc.d/rc3.d;/etc/rc.d/rc4.d;/etc/rc.d/rc5.d中创建符号连接文件S99oracle11文件,这个文件是系统启动时要执行的,其实这个文件是指向/etc/init.d/oracle11的,启动的时候系统向这个文件发送一个start参数,也就执行了oracle11文件中的start分支了。还会在/etc/rc.d/rc0.d;/etc/rc.d

/rc1.d;/etc/rc.d/rc6.d中创建K10oracle11文件,这个文件时系统关闭时要执行的,其实这个文件也是指向/etc

/init.d/oracle11的,关闭的时候系统向这个文件发送一个stop参数,也就执行了oracle11文件中的stop分支了。

我想你应该明白#chkconfig:3459910中这些数字的含义了吧:指出3,4,5级别启动这个服务,99是在相应的/etc

/rc.d/rcN.d(N为前面指定的级别,这里是2345)目录下生成的链接文件的序号(启动优先级别)S99oracle11,10为在除前面指出的级别对应的/etc/rc.d/rcN.d(N为除2345之外的级别)目录生成的链接文件的序号(服务停止的优先级别)K10oracle11。至于为什么在这些目录中创建文件和文件的命名规则,这就要您对LINUX的系统启动流程有一个熟悉的了解了,在这就不详谈了。

其二:若您想尝试一下手动创建符号连接文件的乐趣,请执行如下命令:

#su

-root

ln -s /etc/init.d/oracle11 /etc/rc.d/rc3.d/S99oracle11

ln -s

/etc/init.d/oracle11 /etc/rc.d/rc4.d/S99oracle11

ln -s /etc/init.d/oracle11

/etc/rc.d/rc5.d/S99oracle11

作用效果和执行chkconfig --add

oracle11是一样的。

重启之后看看/var/lock/subsys/目录下的oracle11log文件,里面是不是有脚本的启动分支输出信息呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于TableStore的海量气象格点数据解决方案实战

前言 气象数据是一类典型的大数据,具有数据量大、时效性高、数据种类丰富等特点。气象数据中大量的数据是时空数据,记录了时间和空间范围内各个点的各个物理量的观测量或者模拟量,每天产生的数据量常在几十TB到上百TB的规模,且在…

腾讯会议扩容背后:100万核计算资源全由自研服务器星星海支撑

疫情期间,远程会议及协同办公需求暴增。从1月29日开始到2月6日,腾讯会议每天都在进行资源扩容,日均扩容云主机接近1.5万台,8天总共扩容超过10万台云主机,共涉及超百万核的计算资源投入。 值得一提的是,腾讯…

实时计算无线数据分析

本文为您介绍实时计算在无线数据分析中的应用。阿里云实时计算可以为无线App的数据分析场景实时化助力,帮助您做到实时化分析手机AP的各项指标,包括App版本分布情况、Crash检测和等。 阿里云移动数据分析 (Mobile Analytics,下面简称MAN) 是…

php依赖注入解决什么问题,php – 了解依赖注入的问题

我正在建立一个小项目,尽量教自己尽可能多的基础知识,对我而言,意味着不要使用预制框架(As Jeffonce put it,“不要重塑轮子,除非你计划学习更多关于轮子“[重点]),并遵循测试驱动发展的原则。在我的追求中…

图片批量转换pdf文件

文章目录1. 依赖2. 工具类抽取1. 依赖 <!--图片转换pdf Start--><!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version&g…

对话阿里云Alex Chen:下一代存储应如何面对云转型?

数字经济"乘云而上"。 十年前&#xff0c;阿里云开始自主研发云计算操作系统飞天之路&#xff0c;开启了中国云时代&#xff1b; 十年后&#xff0c;阿里云在中国市场份额超过2-8名总和&#xff0c;培育了整个中国云计算市场&#xff0c;数字经济在云上蓬勃发展。 …

写给大数据从业者:数据科学的5个陷阱与缺陷

来源 | AI 前线作者 | 陈炬&#xff0c;责编 | Carol出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;导读&#xff1a; 这篇分享主要总结了数据从业人员在实践中可能遇到的陷阱与缺陷。跟其他新起的行业一样&#xff0c;数据科学从业人员需要不停的去考虑现…

winform php 交互,WinForm开发,窗体显示和窗体传值

以前对WinForm窗体显示和窗体间传值了解不是很清楚最近做了一些WinForm开发,把用到的相关知识整理如下A.WinForm中窗体显示显示窗体可以有以下2种方法&#xff1a;Form.ShowDialog方法 (窗体显示为模式窗体)Form.Show方法 (窗体显示为无模式窗体)2者具体区别如下&#xff1a;1.…

阿里云数据库自研产品亮相国际顶级会议ICDE 推动云原生数据库成为行业标准

4月9日&#xff0c;澳门当地时间下午4:00-5:30&#xff0c;阿里云在ICDE 2019举办了主题为“云时代的数据库”的专场分享研讨会。 本次专场研讨会由阿里巴巴集团副总裁、高级研究员&#xff0c;阿里云智能数据库产品事业部负责人李飞飞&#xff08;花名&#xff1a;飞刀&#…

常用git

常用git #在此分支基础上创建test分支&#xff0c;并切换到test 注&#xff1a;本分值的以前提交记录会保存 git checkout -b test #在此分支基础上创建uat分支&#xff0c;并切换到uat 注&#xff1a;本分值的以前提交记录会保存 git checkout -b uat #将本地的uat分支推送…

springboot Java实现多文件的zip压缩操作 + 通过浏览器下载文件的两种方式

注只适配utf-8的场景&#xff0c;待完善&#xff01; 压缩为zip文件 通过java程序输出文件 /*** 功能:压缩多个文件成一个zip文件* param srcfile&#xff1a;源文件列表* param zipfile&#xff1a;压缩后的文件*/ public static void zipFiles(File[] srcfile, File zipfil…

大神如何一招完美解决Hadoop集群无法正常关闭的问题!| 博文精选

来源 | CSDN 博客作者 | Alice菌&#xff0c;责编 | Carol出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;相信对于大部分的大数据初学者来说&#xff0c;一定遇见过Hadoop集群无法正常关闭的情况。有时候当我们更改了Hadoop内组件的配置文件后&#xff0c;…

oracle怎么查语句消耗时常,Oracle 查找常见耗性能的语句

-- 最耗缓存SELECT * FROM (SELECT SQL_FULLTEXT sql,buffer_gets, executions, buffer_gets/executions "Gets/Exec",hash_value,address,LAST_ACTIVE_TIMEFROM V$SQLAREAWHERE buffer_gets > 10000ORDER BY buffer_gets DESC)WHERE rownum < 10 ;-- 最多物理…

现代IM系统中的消息系统架构 - 架构篇

前言 IM全称是『Instant Messaging』&#xff0c;中文名是即时通讯。在这个高度信息化的移动互联网时代&#xff0c;生活中IM类产品已经成为必备品&#xff0c;比较有名的如钉钉、微信、QQ等以IM为核心功能的产品。当然目前微信已经成长为一个生态型产品&#xff0c;但其核心功…

ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID 给程序配置新的数据库的时候&#xff0c;出现了以下错误 ORA-12505, TNS:listener does not currently know of SID given in connect descriptor说明给到的sid有误,很有可能就是服务名和sid混淆使用。 首先了解…

华南地区最大数据中心上线 阿里云河源数据中心正式开服

2月18日&#xff0c;阿里云在官网宣布&#xff0c;河源数据中心正式对外提供服务。这是华南地区规模最大的绿色数据中心&#xff0c;可容纳超过30万台服务器&#xff0c;作为深圳地域的新可用区为华南地区上百万企业客户提供领先的云计算、人工智能、物联网等服务。 据悉&#…

在阿里做了五年技术主管,我有话想说

阿里妹导读&#xff1a;在历史文章《如何成为优秀的技术主管&#xff1f;》中&#xff0c;阿里巴巴高级技术专家云狄从开发规范、开发流程、技术规划与管理三个角度&#xff0c;分享对技术 TL 的理解与思考。 今天的文章&#xff0c;他将继续深入探讨这一话题&#xff0c;从管理…

oracle删除查询的数据库语句,Oracle简略的语句 查询 删除 修改(1)

Oracle简单的语句 查询 删除 修改(1)Dual系统表介绍数据类型&#xff1a;数据是信息数字表现形式,信息的加工处理是以大量的结构化数据为载体进行的,数据库管理系统的核心是数据库,数据库的主要对象是表,表是结构化数据存储的地方.Oracle系统也提供了大量的数据类型主要包括两大…

Fish Redux中的Dispatch是怎么实现的?

零.前言 我们在使用fish-redux构建应用的时候&#xff0c;界面代码&#xff08;view&#xff09;和事件的处理逻辑&#xff08;reducer&#xff0c;effect&#xff09;是完全解耦的&#xff0c;界面需要处理事件的时候将action分发给对应的事件处理逻辑去进行处理&#xff0c;…