关于oracle在linux系统下安装后,如何在系统重启的情况下让服务自动启动起来,网上有很多的教程和现成的脚本,这里只是个人工作中的一点经验。

以redhat as4和oracle 10g为例。单机在安装过程依照oracle官方的文档一步步下来,只要设置好参数、安装好必要的包,一般不会出什么问题。安装好了以后系统重启, oracle重启服务,网上很多人建议自己写脚本(其实脚本也很简单),这里讲的是用oracle本身的脚本实现,当然不可避免最后还要写一点点的:)

1、配置dbstart和dbshut

在$ORACLE_HOME/bin中,有dbstart和dbshut这两个脚本,more dbstart看一下可以看到:

#

# $Id: dbstart.sh.pp 11-may-2005.18:18:07 vikrkuma Exp $

# Copyright (c) 1991, 2005, Oracle. All rights reserved.

#

###################################

#

# usage: dbstart

#

# This script is used to start ORACLE from /etc/rc(.local).

# It should ONLY be executed as part of the system boot procedure.

#

# This script will start all databases listed in the oratab file

# whose third field is a "Y". If the third field is set to "Y" and

# there is no ORACLE_SID for an entry (the first field is a *),

# then this script will ignore that entry.

#

# This script requires that ASM ORACLE_SID's start with a +, and

# that non-ASM instance ORACLE_SID's do not start with a +.

#

# If ASM instances are to be started with this script, it cannot

# be used inside an rc*.d directory, and should be invoked from

# rc.local only. Otherwise, the CSS service may not be available

# yet, and this script will block init from completing the boot

# cycle.

#

# Note:

# Use ORACLE_TRACE=T for tracing this script.

#

# The progress log for each instance bringup plus Error and Warning message[s]

# are logged in file $ORACLE_HOME/startup.log. The error messages related to

# instance bringup are also logged to syslog (system log module).

# The Listener log is located at $ORACLE_HOME_LISTNER/listener.log

......

可以看出这个脚本是用来启动oracle服务的,包括listener、instance、asm instances,并且可以放到/etc/rc(.local).,同样dbshut也是起到关闭服务的作用。

配置系统使这个脚本起作用:

1)、以root编辑/etc/oratab,类似 orcl:/u01/product/10.2.0/db_1:N 这种格式,其中orcl是你的ORACLE_SID,/u01/product/10.2.0/db_1是ORACLE_HOME,这里需要把N改为Y,即orcl:/u01/product/10.2.0/db_1:Y这样。

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

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

2、把dbstart和dbshut加到redhat启动服务中

经过上一步的配置,可以直接用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 -c "/u01/product/10.2.0/db_1/bin/dbstart"

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

这里/u01/product/10.2.0/db_1需要替换成实际的ORACLE_HOME

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

2)、如果我们不用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权限:

# cd /etc/rc2.d

# ln -s /etc/rc.d/init.d/oracle S99oracle

# chkconfig --list oracle

# chkconfig --level 2345 on

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

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

-----------------------------------------------------------------------------------------------

1、 修改Oracle系统配置文件/etc/oratab

/etc/oratab 格式为: SID:ORACLE_HOME:AUTO

把AUTO域设置为Y(大写),只有这样,oracle 自带的dbstart和dbshut才能够发挥作用。我的为:

ora9i:/home/oracle/ora/products/9.2.0:Y

2、 编写服务脚本:

如下

#!/bin/bash

#

#################FUNCTION#############

#

# AutoStart Oracle and listener

# AutoStop Oracle and listener

#

#####################################

#

# Created by ZhouYS 2003-11-26

#

case "$1" in

start)

echo "Starting Oracle Databases ... "

echo "-------------------------------------------------" >> /var/log/oracle

date +" %T %a %D : Starting Oracle Databasee as part of system up." >> /var/log/oracle

echo "-------------------------------------------------" >> /var/log/oracle

su - oracle -c "dbstart" >> /var/log/oracle

echo "Done."

echo "Starting Oracle Listeners ... "

echo "-------------------------------------------------" >> /var/log/oracle

date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle

echo "-------------------------------------------------" >> /var/log/oracle

su - oracle -c "lsnrctl start" >> /var/log/oracle

echo "Done."

echo ""

echo "-------------------------------------------------" >> /var/log/oracle

date +" %T %a %D : Finished." >> /var/log/oracle

echo "-------------------------------------------------" >> /var/log/oracle

touch /var/lock/subsys/oracle

;;

stop)

echo "Stoping Oracle Listeners ... "

echo "-------------------------------------------------" >> /var/log/oracle

date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle

echo "-------------------------------------------------" >> /var/log/oracle

su - oracle -c "lsnrctl stop" >> /var/log/oracle

echo "Done."

rm -f /var/lock/subsys/oracle

echo "Stoping Oracle Databases ... "

echo "-------------------------------------------------" >> /var/log/oracle

date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle

echo "-------------------------------------------------" >> /var/log/oracle

su - oracle -c "dbshut" >>/var/log/oracle

echo "Done."

echo ""

echo "-------------------------------------------------" >> /var/log/oracle

date +" %T %a %D : Finished." >> /var/log/oracle

echo "-------------------------------------------------" >> /var/log/oracle

;;

restart)

$0 stop

$0 start

;;

*)

echo "Usage: oracle {start|stop|restart}"

exit 1

esac

将脚本命名为oracle,保存在/etc/rc.d/init.d下

改变文件属性:chmod 755 oracle

注意:在windows下编辑此文件时有DOS格式字符导致在linux下不能够正常运行,建议用gedit 或用 vi编辑

3、建立服务连接:

系统启动时启动数据库,我们需要以下连结∶

--------------------------------------------------------------------------------

$ ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle

$ ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle

$ ln -s ../init.d/oracle /etc/rc.d/rc5.d/S99oracle #rc4.d unused

--------------------------------------------------------------------------------

要在重新启动时停止数据库,我们需要以下连结∶

--------------------------------------------------------------------------------

$ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle # 停止

$ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle # 重新启动

--------------------------------------------------------------------------------

******上面是 网上抄的 ,以下是我的 方法******

--------------------------------------------------------------------------------

最简单的 方法 呵呵

首先 把oracle/product/../bin 下的 dbstart脚本搞定,如果 执行 dbstart就可以 运行oracle的话 ,在 /etc/rc.local 中加入 如下:

su - oracle -c "/home/oracle/oracle/product/10.2.0/db_1/bin/dbstart"

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

即可.

转载于:https://blog.51cto.com/5371936/925269

Redhat_as4_oracle10g自启动脚本设置相关推荐

  1. 1003.imx6Q自启动脚本

    linux自启动脚本设置步骤: 1  进入 /etc/rc5.d 目录下,编写启动脚本的名称 S99test.sh S 表示 start ,99 表示优先级较低 2  赋予脚本权限 chmod 777 ...

  2. html 启动bat脚本,Windows开机自启动bat脚本设置方法

    摘要 腾兴网为您分享:Windows开机自启动bat脚本设置方法,小睡眠,小书亭,托迈酷客,土豆等软件知识,以及显卡加亮,团购宝,多和梦,pdf编辑器,杭州地铁线路图,宝宝拼图游戏,蠕虫病毒专杀工具, ...

  3. Centos7搭建Java环境,并设置项目自启动脚本、定时数据库备份/日志清理脚本

    开发环境下载,提供nginx-1.12.2.jdk-8u162.Jenkins下载 建个文件夹,作为开发环境存放路径 cd /usr mkdir developmentEnvironment cd / ...

  4. WIN10设置自启动脚本

    刚想设置一个笔记本热点开机自启的操作 上网查询后发现需先把脚本文件放在C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup 目录下 1)而在我 ...

  5. 麒麟V10sp1轻松设置开机自启动脚本

    大家有没有经常碰到每次开机都需要花费5分钟去手动运行某个脚本的情况,是不是偶尔懒的动手,想开机之后自动运行.比如开机自动新建文件,自动清垃圾,自动打开qq,自动打开微信,自动打开浏览器,自动发送邮件诸 ...

  6. Linux设置开机自启动脚本

    这里介绍两种Linux开机自启动脚本的方式 也可用于开机自启动软件(把软件的启动写成脚本,然后再让脚本开机自启动即可) 方式1:/etc/profile.d/ 把自启动脚本放在/etc/profile ...

  7. Oracle 11G for redhat 自启动脚本

    Oracle 11G for redhat 自启动脚本 在$ORACLE_HOME/bin中,有dbstart和dbshut这两个脚本,可以使用这两个oracle自带的脚本实现oracle的开机自启动 ...

  8. CentOS 开机自启动脚本

    开机时执行自己的脚本. 1.编写自己的服务脚本 进入系统服务脚本目录: cd /etc/rc.d/init.d/ vi test 内容如下: #!/bin/bash # # chkconfig: - ...

  9. OpenWrt启动过程分析+添加自启动脚本【转】

    一.OpenWrt启动过程分析 转自: http://www.eehello.com/?post=107 总结一下OpenWrt的启动流程:1.CFE->2.linux->3./etc/p ...

  10. bash 脚本中激活conda环境_ubuntu18.10目标检测算法环境部署+开机自启动脚本创建screen下的web服务...

    内容概要 cuda+cudnn+python环境安装 ubuntu18的开机自启动脚本 screen服务开启 以我个人的实践来看,把python开发的算法封装成webserver的服务供前端程序调用是 ...

最新文章

  1. 图灵奖得主Geoffrey Hinton:脱缰的无监督学习,将带来什么
  2. STM32F103/302 SPI3 接口使用例程
  3. Eclipse导入项目常见问题----服务器版本问题02
  4. [听尉迟方侃侃]平台
  5. STL源码剖析 序列式容器 deque双端队列
  6. filter IE滤镜(Internet Explorer)CSS
  7. Nginx日志配置详解
  8. 框架学习八:二维码(Zxing)
  9. 贪心算法—区间调度 电影节(POJ 4151)
  10. 一支python教学_第一只python爬虫
  11. 索引sql server_SQL Server报告– SQL Server索引利用率
  12. 产品能力提升|《点石成金·访客至上的Web和移动可用性设计秘籍》
  13. 从 virtio 网卡收包段错误问题出发反思个人问题分析的过程
  14. mysql 主从1146_浅谈mysql主从同步及错误1146处理
  15. gis坐标|度分秒与十进制转换公式
  16. Seurat | 不同单细胞转录组的整合方法
  17. Windows10视频文件没有预览图的解决办法
  18. 132,怎样理解帝国和王朝的兴衰
  19. C陷阱篇之char的默认符号
  20. Git零基础教程①:如何加速开源社区github的打开(2022版)

热门文章

  1. React Native创建项目等待时间长解决
  2. Python网络爬虫与信息提取 - requests库入门
  3. 存储过程中拼接sql的示例
  4. CoreData学习-最好的一片文章
  5. Java集合对象详解
  6. QComboBox使用方法,QComboBox详解
  7. 在SQL Server中对视图进行增删改
  8. MySQL 显示版本、端口、状态
  9. odi 12.2.1.1新特性
  10. python带cookie登录