容灾切换中的数据库宕机问题简单分析(一)

最近对一个统计库做了计划内的容灾切换,即主备切换。操作的过程其实还是蛮顺利的。但是灾难切换中如果出现在问题,那就是灾难中的灾难了。
按照计划对配置信息做了同步,然后使用DG Broker做了SwitchOver操作。
这一次切换速度还是蛮快,我开了几个窗口看到日志都在不断输出,角色已经替换过来了。DG Broker切换的日志如下:
DGMGRL> switchover to test29;
Performing switchover NOW, please wait...
New primary database "test29" is opening...
Operation requires shutdown of instance "test2" on database "sgstatdb3"
Shutting down instance "test2"...
ORA-01031: insufficient privileges

Warning: You are no longer connected to ORACLE.

Please complete the following steps to finish switchover:
        shut down instance "statdb2" of database "stest3"
        start up instance "statdb2" of database "stest3"

这个时候备库已经切换为主库,只要重启切换前的主库即可。
但是这么一个简单的操作就出了问题。shutdown immediate命令敲下去之后,客户端就没有反应了。
SQL> shutdown immediate
ORA-01092: ORACLE instance terminated. Disconnection forced
SQL> Write failed: Broken pipe

然后等了一下,从中控端去登录就无法连通了。这个问题确实够奇怪,我去ILO查看发现系统已经在自动重启了。
当然宽慰的是切换已经完成,可以先让应用的同学去测试他们的业务了。我们可以继续处理这个意料之外的问题。

在宕机的瞬间,数据库alert日志只输出了一行内容“
ORA-1092 : opitsk aborting process
Write failed: Broken pipe
查看ILO的界面,发现系统已经在初始化中了。

等了一会就看到系统的界面提示RAID信息貌似不一致了。这个库里的盘很多,配置这个还真不在行。

简单咨询了下同事,还是选择热引导重启,重启之后,貌似那个问题是过去了,然后就弹出一个错误。已经很明确告诉我是BUG,而且是CPU相关的。

再次重启,还是同样的问题,这个时候我们就需要两手准备,如果服务器无法重启,就需要马上开始准备新的备库的事宜了。
最后我们还是尝试冷引导,类似断电重启的方式,这一次系统竟然起来了,也算是不幸中的万幸了。
当然对于这个问题。马上就收到了一个报警短信,提示服务器的/var目录空间不足了。
仔细一看原来生成了kdump文件,有大概6G左右。
-rw------- 1 root root 6446125056 May 26 11:15 vmcore-incomplete
对这个文件是需要使用命令crash或者其它第三方工具查看的,根据同事的反馈,在Dell 720XD,系统6U3中确实会有这种问题。
我这个问题的必备条件全满足了,我还在想是否为什么之前没有碰到过,仔细一看原来早就有这个坑了,去年的时候这个数据库就重启过,已经有了crash的问题了。
# ll
total 8
drwxr-xr-x 2 root root 4096 Aug  2  2015 127.0.0.1-2015-08-02-09:50:47
drwxr-xr-x 2 root root 4096 May 26 15:46 127.0.0.1-2016-05-26-11:05:18
后续进行更多的分析。

时间: 2024-08-01 12:31:33

容灾切换中的数据库宕机问题简单分析(一)的相关文章

一条sql语句导致的数据库宕机问题及分析

之前分享过一篇博文,是一条sql语句"导致"的数据库宕机,上次是另有原因,这次真碰到一个案例,而且是在重要的环境上,希望大家引以为戒. 数据库是基于Linux64的版本,版本是11.2.0.2.0,已经打了最新的psu. 数据库的访问用户数大约在1000左右,当时查看服务器的cpu已经是100%了,有大约10个进程都是cpu 100%,数据库逻辑读也是超高,一秒钟大约是接近百兆的情况,sga是12G,已用了sga的自动管理(sga_target=0), 查看内存组件时发现buffer_

一条sql语句“导致”的数据库宕机问题及分析

最近测试环境需要做一些变更,把测试环境切分成两套环境,存储空间也需要压缩压缩和整理. unix组的人已经开始做空间划分了,然后我们需要在此基础上重建一套环境. 有些数据文件使用空间不大,所以准备压缩一下. 用了下面的sql语句,结果跑了十几秒中就抛了下面的错误. SQL> set linesize 200 SQL> col name for a40 SQL> col resizecmd for a80 SQL> select a.file#,a.name,a.bytes/1024/

一次数据库宕机问题的分析

今天来到办公室,发现有一台服务器中的数据库实例停掉了.这种情况真是意料之外,尤其是我还不是很熟悉这台机器的服务. 赶紧查看数据库日志,可以看到数据库在昨晚停掉了,从日志来看没有人为的痕迹. 在宕机之前,有下面的日志.在此截取一部分.TNS-12560: TNS:protocol adapter error opiodr aborting process unknown ospid (33498) as a result of ORA-609     ns secondary err code:

美联社新闻数据库宕机5小时 波及美大部分报纸

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 北京时间10月115.html">26日上午消息,据国外媒体报道,周一美联社遭遇计算机故障,在5小时中各家报社及其他一些新闻媒体无法收到该社的大量报道. 故障发生于美国东部时间周一下午3时(北京时间周二凌晨3时),当时美联社正试图安装微软推荐的一个安全补丁.该社希望在下周的美国全国和各州大选前提高安全性. 美联社首席信息官洛林

flashback_area 区域溢出导致数据库宕机

问题: ORA-00257 ORA-16014 log 1 sequence# 1085 not archived, no available destinations ORA-00312 online log 1 thread 1 'usrapporacleoradatawanyanredo01.log'       原因:       归档日志闪回恢复区的2G都被写满了. 检查步骤: SQL>shutdown immediate SQL>startup ORA-00257 ORA-1601

使ASP.NET中的数据库操作变得简单

asp.net|数据|数据库 作者:Willmove 主页:http://www.amuhouse.com E-mail: willmove@gmail.com 声明:系作者原创作品,转载请注明出处. ASP.NET中一般都是使用SQL Server作为后台数据库.一般的ASP.NET数据库操作示例程序都是使用单独的数据访问,就是说每个页面都写连接到数据库,存取数据,关闭数据库的代码.这种方式带来了一些弊端,一个就是如果你的数据库改变了,你必须一个页面一个页面的去更改数据库连接代码. 第二个弊端

SQL SERVER中关于exists 和 in的简单分析_MsSql

In与Exists这两个函数是差不多的,但由于优化方案不同,通常NOT Exists要比NOT IN要快,因为NOT EXISTS可以使用结合算法二NOT IN就不行了,而EXISTS则不如IN快,因为这时候IN可能更多的使用结合算法. 如图,现在有两个数据集,左边表示#tempTable1,右边表示#tempTable2.现在有以下问题: 1.求两个集的交集? 2.求tempTable1中不属于集#tempTable2的集? 先创建两张临时表: create table #tempTable1

SQL SERVER中关于exists 和 in的简单分析

In与Exists这两个函数是差不多的,但由于优化方案不同,通常NOT Exists要比NOT IN要快,因为NOT EXISTS可以使用结合算法二NOT IN就不行了,而EXISTS则不如IN快,因为这时候IN可能更多的使用结合算法. 如图,现在有两个数据集,左边表示#tempTable1,右边表示#tempTable2.现在有以下问题: 1.求两个集的交集? 2.求tempTable1中不属于集#tempTable2的集? 先创建两张临时表: create table #tempTable1

数据库"负载均衡,备份,异地容灾"设计

数据库"负载均衡,备份,异地容灾"设计 Author: DigoalPS - 纯属个人看法,仅供参考. 1. 数据对象按分类放到不同的SCHEMA  为了方便实施数据库层面的备份和容灾,必须将数据对象按内容进行逻辑分类设计.  例如:  (某下载系统)    1.tbl_app_info 表 - 存储应用信息,新应用部署时需要插入该表,应用下线时需要更新或删除该表的记录,用户下载时需要查询该表,还有等等一些其他操作;数据增长缓慢,数据量视应用数决定.    2.tbl_download