本文列举了史上八大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. ABP文档 - Javascript Api - Message

    本节内容: 显示信息 确认 Message API给用户显示一个信息,或从用户那里获取一个确认信息. Message API默认使用sweetalert实现,为使sweetalert正常工作,你应该包 ...

  2. ABP文档 - SignalR 集成

    文档目录 本节内容: 简介 安装 服务端 客户端 连接确立 内置功能 通知 在线客户端 帕斯卡 vs 骆峰式 你的SignalR代码 简介 使用Abp.Web.SignalR nuget包,使基于应用 ...

  3. 标准产品+定制开发:专注打造企业OA、智慧政务云平台——山东森普软件,交付率最高的技术型软件公司

    一.公司简介山东森普信息技术有限公司(以下简称森普软件)是一家专门致力于移动互联网产品.企业管理软件定制开发的技术型企业.公司总部设在全国五大软件园之一的济南齐鲁软件园.森普SimPro是由Simpl ...

  4. 苹果强制使用HTTPS传输了怎么办?——关于HTTPS,APP开发者必须知道的事

    WeTest 导读 2017年1月1日起,苹果公司将强制使用HTTPS协议传输.本文通过对HTTPS基础原理和通信过程内容的讲解,介绍APP开发者在这个背景下的应对办法. 几周前,我们在<htt ...

  5. C++11特性——变量部分(using类型别名、constexpr常量表达式、auto类型推断、nullptr空指针等)

    #include <iostream> using namespace std; int main() { using cullptr = const unsigned long long ...

  6. MySQL中interactive_timeout和wait_timeout的区别

    在用mysql客户端对数据库进行操作时,打开终端窗口,如果一段时间没有操作,再次操作时,常常会报如下错误: ERROR (HY000): Lost connection to MySQL server ...

  7. [原]Cachedb 网络模块文档

    Cachedb 网络模块文档 整体结构 多路复用 (epoll 模块) 事件驱动 (事件封装) 缓冲管理 (上层buffer管理) 设计思想 层次化的设计,每一个模块只调用上一个模块的接口,并将耦合聚 ...

  8. WebSocket - ( 一.概述 )

    说到 WebSocket,不得不提 HTML5,作为近年来Web技术领域最大的改进与变化,包含CSS3.离线与存储.多媒体.连接性( Connectivity )等一系列领域,而即将介绍的 WebSo ...

  9. 推荐一个ASP.NET网站内容管理系统源码

    许多人都有各自的兴趣,如打球.踢毽子.看书.看电视.玩游戏等等....我近来迷上了猜灯谜,于是业余做了一个在线猜灯谜的网站:何问起谜语. 先出个谜语让你猜猜:不可缺一点(打一字).可以在线猜:http ...

  10. Android Weekly Notes Issue #237

    Android Weekly Issue #237 December 25th, 2016 Android Weekly Issue #237 这是本年的最后一篇issue, 感谢大家. 本期内容包括 ...