Oracle 11G for redhat 自启动脚本

Wesley13
• 阅读 540

Oracle 11G for redhat 自启动脚本

在$ORACLE_HOME/bin中,有dbstart和dbshut这两个脚本,可以使用这两个oracle自带的脚本实现oracle的开机自启动。这个脚本中包含oraclelistener、instance、asm instances的启动,同样dbshut也是起到关闭服务的作用。

方法一:使用/etc/rc.local系统开机启动脚本,启动oracle

配置系统使dbstart和dbshut脚本起作用:

1)、以root编辑/etc/oratab,

orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:N 这种格式,

orcl是你的ORACLE_SID,

/home/oracle/app/oracle/product/11.2.0/dbhome_1是ORACLE_HOME,

这里需要把N改为Y,即orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:Y。

2)、以oracle编辑$ORACLE_HOME/bin/dbstart,找到其中第78行:ORACLE_HOME_LISTNER=改为你自己的路径,或者可以改成ORACLE_HOME_LISTNER=$ORACLE_HOME

保存脚本,以oracle用户运行dbshut和dbstart看是否能关闭、启动数据库。如果不能,一般是参数设置,根据报错找到对应位置更改。

经过上一步的配置,可以直接用dbstart命令启动数据listener、instance、asm instances,但是还没有启动oracle10g的EM,ORACLE利用web页面管理数据库相当方便,也是10g的一个特色,所以应该一并启动起该服务来。

  $ORACLE_HOME/bin/emctl start dbconsole

因此我们可以用rc.local或者redhat服务都可以实现要求的开机启动。下面分别说一下:

1)、利用rc.local。直接把dbstart加到rc.local中,实现开机自动启动。这里需要注意的是必须以oracle启动该脚本。

    用root编辑/etc/rc.local,添加下面三行:

            su oracle –lc "/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start"

    su - oracle -c "/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbstart"

     su - oracle -c "/u01/product/10.2.0/db_1/bin/emctl start dbconsole"

    这里"/home/oracle/app/oracle/product/11.2.0/dbhome_1需要替换成实际的ORACLE_HOME

保存并退出后,reboot服务器测试一下,可以看到,当系统启动以后oracle监听、实例和em都已经起来了

方法二:使用/etc/rc.d/init.d/oracle 自创脚本启动关闭数据库

如果我们不用rc.local,也可以加到redhat服务中。在/etc/rc.d/init.d中添加如下脚本文件,命名为oracle:

#!/bin/sh

#chkconfig: 2345 99 01

#description: ORACLE 10g Server

ORACLE_HOME=/u01/product/10.2.0/db_1

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

then

  echo "ORACLE cannot start"

  exit

fi

case "$1" in

'start')

     echo "Starting Oracle Database..."

     su - oracle -c "$ORACLE_HOME/bin/dbstart"

     su - oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"

     ;;

'stop')

     echo "Stoping Oracle Database"

     su - oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"

     su - oracle -c "$ORACLE_HOME/bin/dbshut"

     ;;

esac

注意其中两行注释,网上很多脚本因为少了这两行不能使服务自启动:

#chkconfig: 2345 99 01

#description: ORACLE 10g Server

其中chkconfig:2345 99 01 是指脚本将为运行级2、3、4、5启动oracle 10g服务,启动优先级为99,关闭优先级为01。

然后以root权限:

mv  oracle /etc/init.d

chkconfig --add oracle

# chkconfig --list oracle 查看,这样的话就把ORACLE就可以开机启动和关机前shutdown immediate

重启系统,就可以在启动的过程中看到 Starting oracle  ,因为我们设置的优先级为99,一般是最后启动。[OK]以后就可以了。因为要启动emctl,可能有点慢,等待的时间要稍微长一点。

启动以后可以以root执行oracle start或者oracle stop来启动或停止服务

总结:我是采用方式一进行实现的,方法二没有经过测试

转载请注明:http://blog.163.com/nocturnal_ken/blog/static/17802332720111945726777/

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
4个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这