本文列举了史上八大MySQL宕机事件原因、影响以及人们从中学到的经验,文中用地震级数来类比宕机事件的严重性和后果,排在最严重层级前两位的是由于亚马逊AWS宕机故障(相当于地震十级和九级)。

一、Percona网站宕机事件

震级:3 
发生时长:2011年7月11日 
持续时长:数日 
地点:加州Pleasanton(幸福屯) 
宕机原因:Percona网站主服务器上的3块硬盘损坏,同时因为人员变更,导致未能如预期地恢复,多个网站资产因此下线数小时到数天不等,影响其软件下载及交易。 
经验:备份不一定永远正常,不应该对其抱有过多期待。

二、GitHub服务中断

震级:4 
发生时间:2012年9月10-11日 
持续时长:1:46小时 
地点:加州圣弗朗西斯科 
宕机原因:GitHub将一对古老的、基于DRBD的MySQL服务器替换成一个拥有3个节点的集群。在合并到新系统时,“活动的”数据库自动出现了多个故障转移(failover),同时又因为集群管理软件的错误操作导致性能下降,最终造成网站宕机。 
经验:GitHub修改了Pacemaker配置来保证故障转移仅仅可以被运维人员控制。

三、Journal Space所有数据丢失及网站关闭

震级:5 
发生时间:2009年1月5日 
持续时长:无限期 
宕机原因:Journal Space是一个拥有6年历史的博客平台,基于MySQL开发,其唯一的数据库备份机器由RAID系统维护。最终网站的数据因前员工的报复行为被重写,最终导致所有用户数据丢失以及网站关闭。 
经验:永远不要把驱动器镜像当做备份——它能防范物理故障带来的问题,但是不提供时间点恢复功能。

四、PHPFog共享数据库运行中断

震级:6 
发生时间:2012年10月8日 
持续时长:8小时 
地点:俄勒冈州波特兰 
宕机原因:PHPFog将用户数据合并到一个新的共享数据库服务上,但是在合并过程中遭受过多的堆叠连接,最终共享数据库停止响应,因此在共享数据库从快照中恢复前一直处于服务不稳定状态。从问题发生到解决一共历时8小时。
经验:这一事件后,PHPFog加速Amazon RDS用户迁移活动。

五、Couch Surfing因MySQL数据库故障导致服务关闭

震级:7 
发生时间:2006年6月 
地点:加州圣弗朗西斯科 
持续时长:1个月 
宕机原因:流行社交网站Couch Surfing曾拥有90000名用户,在2006年遭遇了一场严重的硬盘问题,在试图恢复数据时发现数据库增值备份遭遇问题。其MySQL数据库以及应用关键部分丢失,因此创始人最终关闭了这项服务,随后用户社区又将它重启。 
经验:任何MySQL系统必须有一个以上备份服务器;每天都必须验证MySQL备份进程。

六、magnolia因丢失主数据库和备份导致最终无法完全恢复

震级:7 
发生时间:2009年1月30日 
地点:加州圣弗朗西斯科 
持续时长:无限期 
宕机原因:Magnolia和Delicious一样,是一个流行的书签服务,基于MySQL数据库。该服务在由于硬盘损坏以及备份系统的错误,丢失了主数据库和备份,最终无法完全恢复。 
经验:确保硬件的可靠性非常重要;备份系统是否可行必须得到充分的验证。

七、Amazon RDS宕机事件

震级:9 
发生时间:2012年6月29日 
持续时长:3小时 
地点:弗吉尼亚州北部 
用户影响:亚马逊EC2云计算服务以及包括Netflix公司、Heroku、Pinterest、 Quora、HootSuite和Instagram等。 
宕机原因:一个被称为derecho的强雷暴天气系统通过弗吉尼亚州北部,使得亚马逊在该地区的设施失去了动力,发电机不能正常运行,消耗应急电源的不间断电源(电源)系统,从而导致运行在Amazon RDS上的大概上千个MySQL数据库宕机。 
经验:扩大7*24小时工程师支持团队规模,发生电源系统故障、UPS启动之前完全支持手动操作开启发电机开关。

八、Amazon RDS宕机事件

震级:10 
发生时间:2011年4月21日 
持续时长:48小时 
地点:弗吉尼亚州北部 
用户影响:导致使用AWS平台的Reddit、Foursquare、Hootsuite、Quora以及其他多家社交网络服务商成为“受害者” 。 
宕机原因:亚马逊修改网络设置,同时在对主网络升级扩容过程中,工程师不慎将主网数据全部切换到从网,由于从网带宽较小,而它的设计目的并非用于主网容灾或备份,因此导致网络堵塞,所有EBS(Elastic Block Store)节点通信全部中断,导致存储着数据和日志的MySQL数据库宕机,其中运行在一个可用区域里41%的MySQL数据库宕机24小时,14.6%宕机48小时。

从史上八大MySQL事故中学到的经验的更多相关文章

  1. (转)从史上八大MySQL宕机事故中学到的经验

    一.Percona网站宕机事件 震级:3 发生时长:2011年7月11日 持续时长:数日 地点:加州Pleasanton(幸福屯) 宕机原因:Percona网站主服务器上的3块硬盘损坏,同时因为人员变 ...

  2. 屌炸天实战 MySQL 系列教程(二) 史上最屌、你不知道的数据库操作

    此篇写MySQL中最基础,也是最重要的操作! 第一篇:屌炸天实战 MySQL 系列教程(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:屌炸天实战 MySQL 系列教程(二) 史上最屌.你不 ...

  3. 吐血总结|史上最全的MySQL学习资料!!

    在日常工作与学习中,无论是开发.运维.还是测试,对于数据库的学习是不可避免的,同时也是日常工作的必备技术之一.在互联网公司,开源产品线比较多,互联网企业所用的数据库占比较重的还是MySQL. 在刚刚出 ...

  4. 优秀后端架构师必会知识:史上最全MySQL大表优化方案总结

    本文原作者“ manong”,原创发表于segmentfault,原文链接:segmentfault.com/a/1190000006158186 1.引言   MySQL作为开源技术的代表作之一,是 ...

  5. 史上最简单的 MySQL 教程(十五)「列属性 之 自动增长」

    自动增长 自动增长:auto_increment,当对应的字段,不给值,或者是默认值,或者是null的时候,就会自动的被系统触发,系统会从当前字段中取已有的最大值再进行+1操作,得到新的字段值. 自增 ...

  6. 《史上最简单的MySQL教程》系列分享专栏

    <史上最简单的MySQL教程>系列分享专栏 <史上最简单的MySQL教程>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read ...

  7. 【干货总结】:可能是史上最全的MySQL和PGSQL对比材料

    [干货总结]:可能是史上最全的MySQL和PGSQL的对比材料 运维了MySQL和PGSQL已经有一段时间了,最近接到一个数据库选型需求,于是便开始收集资料整理了一下,然后就有了下面的对比表 关键词: ...

  8. 整理:史上最简单的 MySQL 教程

    1 前言 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成 ...

  9. Linux记录-史上最全的MySQL高性能优化实战总结(转载)

       史上最全的MySQL高性能优化实战总结! 1.1 前言 MySQL对于很多Linux从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰.在进行MySQL的优 ...

随机推荐

  1. Hangfire项目实践分享

    Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...

  2. C# 正则表达式大全

    文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...

  3. 比Mysqli操作数据库更简便的方式 。PDO

    下面来说一下PDO 先画一张图来了解一下 mysqli是针对mysql这个数据库扩展的一个类 PDO是为了能访问更多数据库 如果出现程序需要访问其他数据库的话就可以用PDO来做 PDO数据访问抽象层1 ...

  4. 学习ASP.NET Core, 怎能不了解请求处理管道[6]: 管道是如何随着WebHost的开启被构建出来的?

    注册的服务器和中间件共同构成了ASP.NET Core用于处理请求的管道, 这样一个管道是在我们启动作为应用宿主的WebHost时构建出来的.要深刻了解这个管道是如何被构建出来的,我们就必须对WebH ...

  5. H5项目开发分享——用Canvas合成文字

    以前曾用Canvas合成.裁剪.图片等<用H5中的Canvas等技术制作海报>.这次用Canvas来画文字. 下图中"老王考到驾照后"这几个字是画在Canvas上的,与 ...

  6. CentOS下mysql数据库常用命令总结

    mysql数据库使用总结 本文主要记录一些mysql日常使用的命令,供以后查询. 1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆 ...

  7. IL异常处理

    异常处理在程序中也算是比较重要的一部分了,IL异常处理在C#里面实现会用到一些新的方法 1.BeginExceptionBlock:异常块代码开始,相当于try,但是感觉又不太像 2.EndExcep ...

  8. C++整数转字符串的一种方法

    #include <sstream> //ostringstream, ostringstream::str() ostringstream stream; stream << ...

  9. 负载均衡——nginx理论

     nginx是什么? nginx是一个强大的web服务器软件,用于处理高并发的http请求和作为反向代理服务器做负载均衡.具有高性能.轻量级.内存消耗少,强大的负载均衡能力等优势.  nginx架构? ...

  10. 嵌入式&iOS:回调函数(C)与block(OC)传 参/函数 对比

    C的回调函数: callBack.h 1).声明一个doSomeThingCount函数,参数为一个(无返回值,1个int参数的)函数. void DSTCount(void(*CallBack)(i ...