抛开断电说,推测故障的另一种可能
之前暴雪招聘DBA Lead,要求如下
深入理解Oracle内部原理,熟练掌握RAC和ASM,熟悉Golden Gate复制,熟悉Linux脚本编程。
那么暴雪的数据库架构就出来了
数据库:Oracle,RAC(实时应用集群)+ASM(自动存储管理)
系统:Linux
同步:Golden Gate(通过读取日志进行数据库同步,可以实现低于1秒的实时复制)
故障时间在14日,但是可能在15:20分之前发生
故障应该是数据库坏块,坏块不严重时,oracle可以带病运行。
数据库没有容灾,不能切换到备用数据库运行。(“备用”和“备份”是两个概念)
网易为了业务不中断,决定带病运行,并尝试在线修复(故障后游戏仍然可以运行,说明故障不严重)。这一决策的失误导致最终的大麻烦。
日志可能有损坏,导致数据复制也出现问题,没办法用备份修复。(所谓的“备份出问题”)
数据库坏块在线修复失败,且故障在扩大。准备将业务停止,修复坏块(停机8小时)
结果停机维护遇到相当大的困难,延长停机时间
最终,修不好了,回档
坏块的原因,比起停电,个人认为磁盘(不要和我说什么SSD,这里的磁盘是指的所有可能的存储介质)故障的可能性更大。
根据停机时间,推测数据库体积在8-12TB的样子。
所以,故障发生时,网易不愿意中断业务,选择了风险更大的带病运行。并最终导致2天的数据回档。
也许以后再出类似故障网易会选择停止业务,立即回档。
公司体量大,不代表不会出问题,比如这个
![](http://imgsrc.baidu.com/forum/w%3D580/sign=8c818a81134c510faec4e21250582528/c091930e7bec54e73d144e57b0389b504ec26a29.jpg)