一个空格引发的血案

系统运维从来就是一个精细化的工作,除了规则与规范的约束之外,运维人员的严谨、谨慎也必不可少,有时候一个简单的错误就会导致一场灾难,小到一个字符,一个空格。

本文的案例就是因为一个空格导致的,Oracle RAC遭遇故障重启。

故障现象:客户10.2.0.4 RAC for Solaris 10环境突然出现了实例重启。

故障过程:数据库正常运行到下午3点左右,随后两个节点分别重启,其中一个节点上的实例无法自动启动。检查两个实例的告警日志发现,在节点重启前,两个节点都出现了明显的ORA-27504错误。

错误信息

ORA-27504: IPC error creating OSD context ORA-27300: OS system dependent operation: if_not_found failed WITH STATUS: 0 ORA-27301: OS failure message: Error 0 ORA-27302: failure occurred at: skgxpvaddr9 ORA-27303: additional information: requested interface 192.168.168.3 NOT found. CHECK output FROM ifconfig command

注意,这里的错误信息提示已经比较明确,请求的IP地址不存在,需要检查ifconfig的输出。

接下来就是IPC超时:

Wed Apr 10 15:08:13 2013 ospid 25678: network interface WITH IP address 192.168.168.3 no longer operational requested interface 192.168.168.3 NOT found. CHECK output FROM ifconfig command Wed Apr 10 15:08:16 2013 IPC Send timeout detected.Sender: ospid 25748 Receiver: inst 2 binc 430164 ospid 11890

再然后实例驱逐不可避免:

Wed Apr 10 15:16:40 2013 Waiting FOR instances TO leave: 2

导致问题的原因根据错误信息很容易分析出来,节点2上的IP地址被修改,导致心跳通信出现了异常,而节点1试图将节点2踢出集群,但是由于无法和节点2之间进行通信,因此只有等待节点2重启

检查节点2的操作系统日志,获得如下主要信息:

Apr 10 15:00:04 ip: [ID 482227 kern.notice] ip_arp_done: init failed Had[4135]: [ID 702911 daemon.notice] VCS CRITICAL CPU usage ON bj-sst IS 92% sshd[13485]:error: Failed TO allocate internet-DOMAIN X11 display socket.

在15点04秒时出现的ip_arp_done: init failed信息,说明设置网卡接口时使用了主机名信息,且主机的IP地址被在线修改。

最后根据HISTORY确认,发现有人通过root登录系统:

执行ifconfig –a6来检查IPV6的地址,但是命令敲错 执行了ifconfig –a 6,在a和6之间多了一个空格 导致主机所有的IP地址被设置成0.0.0.0

于是导致了上面的整个故障,一个空格导致整个集群瞬间崩溃,这就是一个空格引发的血案。

这个案例给我们的教训是,对于特权用户,任何一个操作,具体到命令级别,也需要小心谨慎,DBA用户和ROOT用户都在此列。

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2015-09-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java 成神之路

使用 NIO 实现 echo 服务器

4617
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2645
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6778
来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

4708
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

31610
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2152
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

2968
来自专栏杨龙飞前端

scrollto 到指定位置

2494
来自专栏落花落雨不落叶

canvas画简单电路图

61211
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3115

扫码关注云+社区