后端存储实战课
李玥
京东零售计算存储平台部资深架构师
立即订阅
3274 人已学习
课程目录
已更新 15 讲 / 共 26 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (2讲)
开篇词 | 从今天起,换种方式学存储
免费
课前加餐 | 电商系统是如何设计的?
创业篇 (7讲)
01 | 创建和更新订单时,如何保证数据准确无误?
02 | 流量大、数据多的商品详情页系统该如何设计?
03 | 复杂而又重要的购物车系统,应该如何设计?
04 | 事务:账户余额总是对不上账,怎么办?
05 | 分布式事务:如何保证多个系统间的数据是一致的?
06 | 如何用Elasticsearch构建商品搜索系统?
07|MySQL HA:如何将“删库跑路”的损失降到最低?
高速增长篇 (6讲)
08 | 一个几乎每个系统必踩的坑儿:访问数据库超时
09 | 怎么能避免写出慢SQL?
10 | 走进黑盒:SQL是如何在数据库中执行的?
11 | MySQL如何应对高并发(一):使用缓存保护MySQL
12 | MySQL如何应对高并发(二):读写分离
13 | MySQL主从数据库同步是如何实现的?
后端存储实战课
登录|注册

07|MySQL HA:如何将“删库跑路”的损失降到最低?

李玥 2020-03-12
你好,我是李玥。
对于任何一个企业来说,数据安全的重要性是不言而喻的。我在开篇词中也曾经强调过,凡是涉及到数据的问题,都是损失惨重的大问题。
能够影响数据安全的事件,都是极小概率的事件,比如说:数据库宕机、磁盘损坏甚至机房着火,还有最近频繁出现在段子中“程序员不满老板删库跑路”的梗儿,但这些事儿一旦发生了,我们的业务就会损失惨重。
一般来说,存储系统导致的比较严重的损失主要有两种情况,一是数据丢失造成的直接财产损失,比如大量的坏账;二是由于存储系统损坏,造成整个业务系统停止服务而带来的损失。
所谓防患于未然,你从设计一个系统的第一天起,就需要考虑在出现各种问题的时候,如何来保证这个系统的数据安全性。今天我们来聊一聊,如何提前预防,将“删库跑路”等这类问题导致的损失尽量降到最低。

如何更安全地做数据备份和恢复?

保证数据安全,最简单而且有效的手段就是定期备份数据,这样出现任何问题导致的数据损失,都可以通过备份来恢复数据。但是,如何备份,才能最大程度地保证数据安全,并不是一个简单的事儿。
2018 年还出现过某个著名的云服务商因为硬盘损坏,导致多个客户数据全部丢失的重大故障。这么大的云服务商,数据是不可能没有备份的,按说硬盘损坏,不会导致数据丢失的,但是因为各种各样的原因,最终的结果是数据的三个副本都被删除,数据丢失无法找回。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《后端存储实战课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(17)

  • 李玥 置顶
    Hi,我是李玥。



    照例说一下上节课思考题:



    我们在电商的搜索框中搜索商品时,它都有一个搜索提示的功能,比如我输入“苹果”还没有点击搜索按钮的时候,搜索框下面会提示“苹果手机”、“苹果11、苹果电脑”这些建议的搜索关键字,请你课后看一下ES的文档,想一下,如何用ES快速地实现这个搜索提示功能?



    在课后留言中,Geek_c76e2d同学给出的答案非常赞,我在这里就直接“盗用”了,以下是Geek_c76e2d同学的答案:



    因为用户每输入一个字都可能会发请求查询搜索框中的搜索推荐。所以搜索推荐的请求量远高于搜索框中的搜索。es针对这种情况提供了suggestion api,并提供的专门的数据结构应对搜索推荐,性能高于match,但它应用起来也有局限性,就是只能做前缀匹配。再结合pinyin分词器可以做到输入拼音字母就提示中文。如果想做非前缀匹配,可以考虑Ngram。不过Ngram有些复杂,需要开发者自定义分析器。比如有个网址www.geekbang.com,用户可能记不清具体网址了,只记得网址中有2个e,此时用户输入ee两个字母也是可以在搜索框提示出这个网址的。以上是我在工作中针对前缀搜索推荐和非前缀搜索推荐的实现方案。
    2020-03-12
    9
  • skyline
    除了技术方面,我觉得删库跑路也是一个管理机制上的问题,要当成不可抗因素去对待。

    为防止地震我们需要异地备份,距离越远越好,为防止跑路我们需要完善的权限管理。

    不能让一个人有能接触到所有备份的权限,否则就跟单机故障一样出现"单人故障"🤔
    2020-03-12
    8
  • qbit
    腾讯云是一家著名的云服务商:-D
    2020-03-12
    3
  • 刘楠
    binlog 日志中也是有删除库的SQL的,难道,备库或者从库不会执行吗?感觉会执行,所以数据在几个库都删除了。怎么保证备库或者从的数据?

    作者回复: 像我们课程中演示的那样,可以用Binlog恢复到删库之前的那一刻啊

    2020-03-12
    1
    2
  • 小袁
    老师,你说同步复制性能差,哪到底差到一个什么样的程度呢?有定量的测试数据么?

    作者回复: 同步复制时延 = 异步复制的时延 + 最慢的那个从库的复制时延

    定量的来说,理论上同步复制的时延大概是异步复制的2-3倍左右。

    2020-03-17
    1
  • 旅途
    老师 问一下 使用全量备份和binlog增量 这个binlog 删除以前的吗?还是保留全量所有的?

    作者回复: 全量备份那个时刻之前的Binlog是可以删除的。

    2020-03-15
    1
  • 美美
    一主多从同步复制有点类似于KafKa的ISR。
    有一个疑惑,还请老师解惑。感觉这种模式还是会有丢数据的可能。比如,第一次请求同步到从A成功,从B延迟。第二次同步给从B,从A延迟。然后主挂掉,此时感觉切从A或者从B都会有问题。

    作者回复: 这个不是有点儿类似Kafka的ISR,它们的原理根本就是一样的。

    另外,你说的这种情况不会出现,因为Binlog是有序的日志,复制Binlog的时候必须按顺序复制,所以不会出现二个从节点都有一条对方没有的新数据这种情况。

    2020-03-13
    1
    1
  • 大叶枫
    李大师,想了解mysql大买家大卖家单库数据倾斜的慢sql问题~

    作者回复: 这个其实就是分片策略的问题,后面我们会讲如何来分片。

    2020-03-13
    1
    1
  • 滴流乱转小胖子
    老师好,开篇的某云场景叙述,好皮啊!优秀!
    2020-03-12
    1
  • 德斯儿
    Galera Gluster这种方案和课程中介绍的这三种方案有什么区别呢

    作者回复: 它其实就是更细粒度的复制

    2020-03-23
  • XU
    老师,一个数据库设置为从库后,是不是binlog里面就不会记录insert语句?
    2020-03-21
  • Dovelol
    老师好,想问下有没有什么比较好的监控mysql性能还有主从延迟之类的工具,还有就是读写分离在遇到主从延迟突然增大的情况下该怎么办呢?

    作者回复: 如果只是看一下,可以连接到主库上用show slave status命令查看,如果你需要实时监控主从延迟,可以用pt-heartbeat这个工具。

    如果主从延迟突然增大,需要查一下是主的问题还是某个从的问题,如果是某一个从库的问题,可以临时把这个从库下掉。如果是主库问题,那就得赶紧解决主库繁忙的问题。

    2020-03-15
  • 肥low
    很不幸 主从延迟的问题就发生在身边,主要也是主库压力大,延迟时间几个小时都有可能,主库倒是没有当机,但是延迟这么久也是醉了,目前有些对实时性要求高的业务都是通过维护一个Cache来解决延迟问题的,大佬有没有什么更好的办法呢

    作者回复: 我们后续的几节课都会讲你提到的这个问题。

    2020-03-14
  • XU
    老师您好,HA里面,如果主库中的数据库被删掉,那么从库也会被删掉。怎么数据不是还是丢失了?还是说主从库主要是为了防止主库宕机的情况?并不保证删库的情况?

    作者回复: 从库数据也会被删掉,但只要你备份了Binlog,就可以把数据恢复到被删库之前那一刻。

    2020-03-14
  • 观弈道人
    想问下业界常用哪种方式实现HA?个人感觉应该是第二种。一主一从,异步复制,自动切换。
    2020-03-12
  • qbit
    SHOW VARIABLES LIKE '%log_bin%';
    ---
    "log_bin" "OFF"
    "log_bin_basename" ""
    "log_bin_index" ""
    "log_bin_trust_function_creators" "OFF"
    "sql_log_bin" "ON"
    ---
    请问 sql_log_bin 和 log_bin 有什么区别和联系?
    2020-03-12
  • 发条橙子 。
    老师 binlog中不会包含删除表的那行记录么 还是说虽然包含 但是我们可以不去执行那条命令
    2020-03-12
    1
收起评论
17
返回
顶部