在某些情况下需要在Linux操作系统上提供一种无人值守的随机启动Oracle的功能,目的也许仅仅是为了帮助那些对Oracle细节非常不关心的朋友。
当然,如果有可能,一定不要使用这种自动化的方法,因为有太多不确定的因素存在。正途还是一边手工启动数据库,一边监控alert日志,以便第一时间发现问题解决问题。

Anyway,随Linux系统启动数据库还是有其存在价值的,下面通过这个小文儿给大家展示一下这个自动化过程。

1.确保“/etc/oratab”文件内容的正确性
有则修改,无则创建“/etc/oratab”文件。该文件的功能是控制Oracle的启动(dbstart)和关闭脚本(dbshut)是否可用。
# vi /etc/oratab
ecis:/oracle/app/oracle/product/10.2.0/db_1:Y

只有当尾部标识是“Y”时,dbstart和dbshut脚本才可以使用。
dbstart和dbshut脚本存放位置是在ORACLE_HOME的bin目录下,可以使用下面的命令查看脚本的内容。
$ cat $ORACLE_HOME/bin/dbstart
$ cat $ORACLE_HOME/bin/dbshut

2.修改oratab的访问权限
# chmod 755 /etc/oratab
# chown oracle:root /etc/oratab

3.编写自动启停脚本,脚本名叫“oracle”,该文件需要保存在/etc/rc.d/init.d目录中。
vi /etc/rc.d/init.d/oracle
#!/bin/bash
##############################################################
# Script. Function: Auto start oracle instance and listener. #
# Script. Name:     oracle                                   #
# Author:                                                        #
# Date:            2015-11-13                                #
##############################################################
case "$1" in
start)
echo "Starting Oracle Database..."
su - oracle -c "dbstart"
echo "Done."
echo "Starting Oracle Listener..."
su - oracle -c "lsnrctl start"
echo "Done."
touch /var/lock/subsys/oracle
;;
stop)
echo "Shutting down Oracle Listener..."
su - oracle -c "lsnrctl stop" >> /var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle
echo "Shutting down Oracle Database..."
su - oracle -c "dbshut"
echo "Done."
echo ""
;;
restart)
$0 stop
$0 start
;;
*)
exit 1
esac

4.脚本中需要说明的两个细节
1)/var/lock/subsys/oracle这个文件是用来标识oracle实例已经运行。实现类似简单的锁定功能;
2)为实现在root用户里向oracle用户发送启动和关闭数据库命令,需要使用“su”命令的“-c”选项,更多细节请使用man命令进行查询。

5.修改oracle脚本的权限
# chmod 755 oracle

6.为保证该脚本可以在Linux系统启动过程中自动调用,因此需要建立如下连接文件。
特别需要注意的一个细节:确定该脚本在网卡启动之后再执行,否则监听可能无法正常启动(假如Listener配置文件中使用的是IP地址)。
# ln -s ../init.d/oracle /etc/rc.d/rc2.d/S87oracle
# ln -s ../init.d/oracle /etc/rc.d/rc3.d/S87oracle
# ln -s ../init.d/oracle /etc/rc.d/rc5.d/S87oracle

7.到此,重新启动Linux系统后,Oracle的实例和监听就会自动启动。

8.按照这样配置,您还可以使用如下简易方法停、启及重启数据库
停止:
# service oracle stop
启动:
# service oracle start
重启:
# service oracle restart

9.小结
本人推崇自动化,但这里介绍的自动化启动和关闭数据库的方法还请朋友们慎用。
深入到数据库的启动和关闭的细节才是正道。

Good luck.

-- The End --

配置Oracle数据库和监听随Linux系统自启动【转】的更多相关文章

  1. oracle数据库没有监听服务与实例服务(OracleServicesXX)的解决方法

    不知道为什么,可能是因为更新系统的原因,过了一段时间,想打开oracle服务,发现居然没有任何oracle有关的服务了,但以前的数据库文件什么的都在,心想肯定是可以复原的,应该只是注册表的问题罢了.在 ...

  2. oracle数据库无监听程序

    在电脑---服务---启动oracle  tns 如果还是出现错误的话,找到Net Manager,将网络的ip监听删除,将本机的主机名配好,即可打开tns服务

  3. [转]通过Net Manager 配置Oracle 11g本地监听服务(listener service)

    本文转自:http://blog.csdn.net/mozart_cai/article/details/8596504 [Target] 通过ip address 监听orcl服务,而不是通过loc ...

  4. oracle数据库静态监听配置示例

    [oracle@Oracle11g admin]$ cat listener.ora SID_LIST_LISTENER =  (SID_LIST =    (SID_DESC =     (GLOB ...

  5. Linux下启动Oracle服务和监听程序步骤

    Linux下启动Oracle服务和监听程序启动和关闭步骤整理如下: 1.安装oracle: 2.创建oracle系统用户: 3./home/oracle下面的.bash_profile添加几个环境变量 ...

  6. linux下oracle数据库服务和监听的启动停止

    oracle数据库是重量级的,其管理非常复杂,将其在linux平台上的启动和关闭步骤整理一下. 安装完毕oracle以后,需要创建oracle系统用户,并在/home/oracle下面的.bash_p ...

  7. Linux下安装oracle遇到启动监听服务器启动失败

    1.发现监听服务器没有启动,则  lsntctl start 启动监听服务器: 2.发现TNS-12555问题: 3.查找TNS-12555错误,找到一个满意的答案: chmod  777 /var/ ...

  8. 如何让oracle DB、监听和oem开机启动(dbstart)

    如何让oracle DB.监听和oem开机启动(dbstart) 让oracle DB.监听和oem开机启动(dbstart) Oracle提供了伴随操作系统自动重启的功能,在Windows中,可以修 ...

  9. TNS-12541,TNS-12560,TNS-00511,TNS-12542,TNS-12560,TNS-00512数据库启动监听报错

    第 1章   数据库server监听错误 1.1.1数据库监听错误 1.1.1.1 问题及现象 server环境为ORACLE11G RAC环境,系统启动后,监听没起来. [oracle@RAC4 ~ ...

随机推荐

  1. 网络层-network layer(下):网络互连、子网掩码计算方法、Ipv4报头解析

    第五章 网络层-Network Layer(下) 上一章讲了网络层的任务.提供的两种服务.五个重要的路由算法.以及网络层的拥塞控制和服务质量问题.这一部分主要讲一讲网络互连问题和Internet的网络 ...

  2. 初中的一些OI琐屑 & APIO2020 & NOI2020

    这篇文章会发布在我的博客上 https://www.cnblogs.com/dmoransky/(一个小习惯,把信息学竞赛的学习历程记录在个人博客中). 借这篇随笔回顾并简短总结一下我的初中OI(信息 ...

  3. OI知识点/得分技巧的归纳总结

    网络流 拆点/拆边技巧 题目来源 bzoj1070 题目描述 同一时刻有\(N\)位车主带着他们的爱车来到了汽车维修中心.维修中心共有\(M\)位技术人员,不同的技术人员对不同 的车进行维修所用的时间 ...

  4. java多线程之消费生产模型-使用synchronized解决虚假唤醒

    package com.wenshao.juc; /** * 生产者和消费者案例 * * @author Administrator * */ public class TestProductorAn ...

  5. Big Sur 11.0.1 让2K屏幕开启Hidpi

    首先来个成果图: 一.复制显示器配置文件 终端输入命令:cd /System/Library/Displays/Contents/Resources/Overrides 接着输入:open . 打开D ...

  6. 20201203-6 设置excel样式【】

    1-1 1 import os 2 from openpyxl import load_workbook 3 from openpyxl.styles import PatternFill, Alig ...

  7. springMVC基础讲解

    一.初识三层架构: 在讲解springMVC之前,先来了解一下什么是三层架构.我们的开发架构一般都是基于两种形式,一种是C/S架构(客户端/服务器),另一种是B/S架构(浏览器服务器).在javaEE ...

  8. Python高级语法-私有属性-with上下文管理器(4.7.3)

    @ 目录 1.说明 2.代码 关于作者 1.说明 上下文管理器 这里使用with open操作文件,让文件对象实现了自动释放资源.我们也能自定义上下文管理器,通过__enter__()和__exit_ ...

  9. 多任务-python实现-使用生成器完成多任务(2.1.14)

    @ 目录 1.注意 2. 代码 关于作者 1.注意 先定义函数,函数里面放一个yiled 主函数生成该对象 执行while循环 调用生成器对象的next 因为每次调用next,不会继续执行,从而 完成 ...

  10. Linux下安装ffmpeg,视频格式转换

    下载ffmpeg 从ffmpeg官网:http://ffmpeg.org/download.html 下载最新的ffmpeg安装包,然后通过如下命令解压: 解压 ffmpeg-*.tar.bz2 文件 ...