记录一下刚刚发生的内部业务系统故障

2019-02-14 14:12:22 +08:00
 zhujinliang
公司有一内部业务应用,运行在公司机房里的一台服务器上,同机房里还有宽带接入、核心交换等设备。
公司有两处办公地点,A 处为老办公室,设备有些老旧,服务器也放在这边; B 处为新办公室,我们技术部在这边办公。两办公室各自有独立的局域网以及公网 IP,使用 IPSEC VPN 连通。

上午 9:40 左右,有同事反映业务系统打不开或加载超时。毕竟系统跨着公网,这种故障偶有发生,我们像往常一样检查 VPN 是否通畅、两个路由器负载是否过高、是否有某 IP 流量异常。
检查一圈下来没有发现异常,我们这边打开正常,A 处路由器负载有点高,但不像是故障原因。于是跟同事们说可能 A 处网络有卡顿,大家稍后再试一下。
这个事就暂时这样了。

上午 11:00 左右,越来越多的同事反映系统无法使用,我们尝试打开系统,发现故障升级了,报 502 错误,此时肯定大家都无法使用了。
通过 SSH 登录业务服务器,ps 查看发现业务应用没有运行,查看日志发现数据库表有错误。
我们部门领导已打车奔赴前线调查故障原因以及安抚用户情绪。
尝试使用 SQL 命令修复表,失败,提示无法创建临时文件,没有权限。担心硬盘故障,df 查看剩余空间足够,dmesg 没有报告硬盘写入错误,SMART 报告健康,松了口气。
中间看了下 uptime,服务器刚刚被重启过。
继续尝试修复表,通过万能的 StackOverflow 得知可以使用 myisamchk 修复表,于是停掉数据库,进入数据目录,尝试修复表文件。
修复进行顺利,在修复了若干表后,11:30 左右通知同事们业务系统可用了。

与此同时,前线的领导说故障原因找到了。
系某领导所在楼层的交换机故障引发。
某品牌某些比较老的交换机在长时间使用后会出现一种故障,以前见到过,交换机会在工作中突然进入一种异常状态,表现为超高的丢包率。
该领导发现自己上网卡顿,系统打不开,于是他拿起了机房的钥匙,把整个机柜断电,再重新上电来重启设备。服务器意外掉电又导致数据表损坏。

整个故障过程先是网络卡顿导致几个同事偶尔出现加载失败的情况,然后交换机故障使得该领导以为故障迟迟未得到解决,于是他试图重启机房里的设备解决故障。可能他之前也这样做过,幸运的是没有造成服务器上的文件损坏,而且解决了故障。

总结:
网线千万条,稳定第一条。
重启不规范,运维两行泪。
7250 次点击
所在节点    程序员
49 条回复
jasonyang9
2019-02-14 15:13:43 +08:00
事务机制应该能保证这种情况下的数据库完整性啊,物理存储坏了?
jandan
2019-02-14 15:14:54 +08:00
也就是领导啊
openbsd
2019-02-14 15:22:24 +08:00
领导这一波操作很骚气啊! 照顾领导情绪 运维可以把非核心 易故障的交换机单独接一个插座,甚至可以配置一个智能插座(提供 APP 远程),方便领导没事就断一波电,反正非智能交换机启动也就几秒的事 [手动滑稽...]

@TomatoYuyuko #2
这个真心是遗产,小时候家里有台 NEC 的黑白 洋垃圾?就这样拍了 10 多年,偶尔里面还冒点烟,淘汰后拆开看了下,供电部分 ?三个 MOS ?管 烧焦两个 且 PCB 严重碳化,竟然一直都能正常?观看
cedoo22
2019-02-14 15:28:42 +08:00
怎么有股 央视解密节目 的味道????最后发现被断电了,监控哪儿去了?
liprais
2019-02-14 15:56:07 +08:00
2019 年还在用 myisam,不是等着倒霉么
bbsanimal
2019-02-14 16:22:44 +08:00
某医院的加护病房的病人总是在星期天十一点左右死掉,这让医生们困惑不解, 甚至认为是灵异事件,于是成立专家组调查事情的原因。到了星期天,时钟刚刚敲响十一点,通过监视器发现, 在星期天打扫的清洁工走进加护病房,拔掉重病号的生命维持系统电线插头,然后插上了吸尘器插头,开始打扫卫生。。。
jaryur
2019-02-14 16:28:01 +08:00
某领导修炼重启大法误入歧途
AsunaQAQ
2019-02-14 16:33:48 +08:00
NB
dany813
2019-02-14 17:49:28 +08:00
领导牛逼
freezex
2019-02-14 19:11:41 +08:00
是不是应该配个 ups,电源故障时自动关机
banmuyutian
2019-02-14 19:11:44 +08:00
领导问:我怎么上不了网了?
答:重启试试。
领导:好。
pexcn
2019-02-14 22:20:36 +08:00
黑客攻击 (物理)
9hills
2019-02-14 22:28:19 +08:00
难道不是赶快做数据库主从么?
johnnie502
2019-02-14 23:45:20 +08:00
@freezex 领导会直接拔 ups 上的插头的
JerryCha
2019-02-15 00:03:20 +08:00
过于硬核
还好没使用另一招:出故障时踢两脚
Alpha486
2019-02-15 07:55:18 +08:00
领导:先断机房电源,重启问题就好,我有经验!!接着就是一点操作!!
julyclyde
2019-02-15 08:10:38 +08:00
尽早逃离 myisam 吧
一旦故障,可修复率较低
nbin2008
2019-02-15 08:48:41 +08:00
领导一出手,就知有木有
Biexl
2019-02-15 09:17:52 +08:00
万能重启 !
lcatt
2019-02-15 09:25:55 +08:00
服务器和网络设备共用一个机柜?另外交换机重启要断整个机柜的电是什么鬼。非标机柜才能这么做吧,听你的描述我觉得你们机房设计很很乱啊,需要参考 GB50174 好好梳理下,不然以后还会发生。
@openbsd 机柜专用插排不带开关的,就是防止误操作。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/534931

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX