利用dbstart和dbshut脚本自动启动和停止数据库的问题
在出现故障和恢复时,HACMP必须在两台小型机上调用启动和停止Oracle数据库的脚本完成切换过程,大部分的朋友应该和我一样应该会考虑使用Oracle的dbstart和dbshut脚本来生成相应的脚本。
我也是这么做的,但这么做了之后在测试过程中发现了如下一个问题:
1).正常启动HACMP之后,两个数据库正常的在两个小型机上运行。
2).小型机A出现故障,数据库A被正常的切换到了小型机B上运行。
3).小型机A恢复正常,原有数据库正常的切换了回来,但这时运行在小型机B上的数据库宕机了。
上面的现象是什么原因喃,我查看了相关的文档,下面是一段很重要的文字描述:
Oracle推荐配置在系统启动的时候自动启动Oracle数据库,当系统关闭的时候自动关闭数据库,自动化数据库的启动和关闭是为了防止不正确的数据库关闭。
为了实现自动化启动和关闭数据库,需要使用存放在$ORACLE_HOME/bin目录下的dbstart和dbshut脚本,这两个脚本引用/etc/oratab文件中的相同条目,应用于在相同的数据库集。不能有如下的情况,例如,使用dbstart脚本自动的开始sid1,sid2和sid3数据库,同时只使用dbshut脚本停止sid1数据库,这是做不到的。然而可以在不使用dbstart脚本启动数据库的情况下,指定使用dbshut脚本来停止数据库集。如果你想这么做,将包含dbshut脚本的条目写入操作系统停止文件,但是不要将包含dbstart脚本的条目写入操作系统的启动文件中。
在使用dbstart和dbshut脚本启动和停止数据库之前需要先将存储在/etc/oratab配置文件中的数据库属性修改为Y,格式如下:sid:oracle_home_directory:[Y|N],然后就可以在系统启动配置文件和系统停止配置文件中加入dbstart和dbshut脚本使得系统在启动和异常关闭的情况下先启动和正常关闭数据库,避免数据库不正常的关闭带来的损失。脚本标准的用法是:
dbstart $ORACLE_HOME
dbshut $ORACLE_HOME
从上面的描述我们可以了解到,如果一台服务器上有多套Oracle数据库,那么没法控制使用dbstart和dbshut脚本启动和停止某一个数据库,两个脚本会将/etc/oratab配置文件中属性修改为Y的数据库都启动和停止,这就是出现最开始描述的问题的原因。
为了解决这个问题,只有手动写脚本来固定启动和停止某个数据库,下面是一个例子:
1).自动启动脚本。
root用户下面的脚本:
oracle用户下面的脚本:
a_start.sh
HACMP通过root用户下的脚本调用a_start.sh脚本完成对监听器和数据库的自动启动。
2).自动停止脚本。
root用户下的脚本:
oracle用户下的脚本:
a_stop.sh
lsnrctl stop
以上是自动停止Oracle数据库的脚本,HACMP通过root用户下的脚本调用a_stop.sh脚本自动停止Oracle数据库,两个脚本都是通过设置ORACLE_SID环境变量来明确的启动、停止数据库。
--end--
感谢同事老谭对我的帮助!
利用dbstart和dbshut脚本自动启动和停止数据库的问题相关推荐
- 使用dbstart 和dbshut 脚本来自动化启动和关闭数据库
使用dbstart 和dbshut 脚本来自动化启动和关闭数据库: 1. 登录用户root. 2. 编辑你的平台的oratab 文件. 打开文件/etc/oratab: 文件里数据库条目为以下格式: ...
- dbstart $oracle_home,使用dbstart和dbshut命令启动和关闭数据库
Oracle提供了两个脚本dbstart和dbshut用来启动和关闭数据库(包括数据库实例和监听). 这两个脚本首先读取oratab(/etc/oratab)文件来决定哪些数据库是需要自动启动和关闭的 ...
- oracle weblogic开启,菜鸟经验:oracle与weblogic自动启动与停止
oracle与weblogic自动启动与停止 最近做开发时,发觉每次重新启动服务器时oracle数据库若没有关闭,则必须先关闭后在重新启动redhat advance server,oracle才能够 ...
- linux db 启动盘,在linux下使用dbstart和dbshut启动和关闭db!
版本10.2 在9i下dbstart存在一bug:dbstart启动时在$ORACLE_HOME/dbs下寻找initSID.ora,事实上在该目录下不存在这个pfile,在9i 已经使用了spfil ...
- linux oracle停启,linux下Oracle自动启动与停止总结
1. 修改Oracle系统配置文件/etc/oratab /etc/oratab 格式为: SID:ORACLE_HOME:AUTO 把AUTO域设置为Y(大写),只有这样,oracle 自带的dbs ...
- shell实例第18讲:利用gzexe加密shell脚本
利用gzexe加密shell脚本 gzexe_test.sh内容如下: #!/bin/bashecho "gzexe test!" 结果: 使用gzexe加密shell脚本命令:g ...
- python phpstudy_GitHub - Writeup007/phpStudyBackDoor: phpStudy后门检测与利用工具,Python脚本,可一键 GetShell。...
phpStudyBackDoor phpStudy后门检测与利用工具,Python脚本,可一键 GetShell. 简述 2019年9月20日,网上传出 phpStudy 软件存在后门,随后作者立即发 ...
- java源码如何启动脚本_使用Shell脚本如何启动/停止Java的jar程序
本文介绍如何使用Shell脚本来开启和停止jar程序的后台运行,以及如何实现out大文件的切分.另外,补充一些后台运行的小知识. 启动脚本:start_upload.sh #!/bin/sh nohu ...
- Mac 系统部署Frp内网穿透服务 实现frpc shell启动脚本启动、停止
Mac 系统部署Frp内网穿透服务 实现frpc shell启动脚本启动.停止 前言 最近疫情导致居家办公,而工作中需要用到公网地址便于调试,于是就在本机(Mac系统)配置了Frpc内网穿透. 本来想 ...
最新文章
- R创建两个变量的直方图
- 财务人员学python有用吗-一个来自35岁职场高管的忠告:Python为什么不得不学?...
- 命令行下操作MySQL数据库,各种命令的使用入门示例。(附图)
- idea打war包时,JDK版本的问题解决方式
- 时间 '2018-08-06T10:00:00.000Z' 格式转化为本地时间(转)
- 最新有道翻译接口JS逆向分析
- 百度开放平台Demo提示“Key验证失败...”的问题
- Silverlight/Windows8/WPF/WP7/HTML5周学习导读(9月10日-9月16日)
- 实用应聘技巧(转前沿讲座)
- 【2021/12/21】MySQL的json查询之json_keys、json_object、json_overlaps、json_pretty
- 单峰数组求峰值,二分思想,LeetCode862
- warframe在路由器上添加虚拟服务器,卡结算warframe方法
- 酷键盘 Midi Keyboard for Mac - MIDI钢琴键盘模拟器
- 浅谈信息无障碍人才的培养
- 2018 新一代人工智能院士高峰论坛 总结文章
- 基于php的学生公寓管理系统,php毕业设计学生公寓管理系统
- git/码云+npm语法
- 入手评测 赛扬g6900和奔腾g7400 选哪个好
- Data (Privacy) Regulation 数据隐私法规整理
- 在逆境中仍然倔强成长
热门文章
- 约瑟夫环(丢手绢问题)
- leetcode402. 移掉K位数字
- leetcode57. 插入区间
- C++(STL):04---智能指针之weak_ptr
- C++:34---union:联合/共用体,一种节省空间的类
- CSDN-Markdown编辑器使用小技巧
- 剑指offer(刷题61-65)--c++,Python版本
- 《UNIX环境高级编程 3rd》笔记(1 / 21):UNIX基础知识
- OpenCL(CUDA5.0) + Visual Studio 2010 环境配置
- 运营商取消话费余额有效期后改收闲置费