07|MySQL HA:如何将“删库跑路”的损失降到最低?
该思维导图由 AI 生成,仅供参考
如何更安全地做数据备份和恢复?
- 深入了解
- 翻译
- 解释
- 总结
MySQL HA是如何将“删库跑路”的损失降到最低的?本文介绍了数据备份和恢复的重要性,以及实现数据库高可用的方法。首先,定期备份数据是降低损失的有效手段,全量备份和增量备份相结合,能够实现数据恢复到任意时间点。其次,MySQL HA方案通过主从复制和Binlog实现高可用,但存在主从延迟和从库宕机的问题。文章提出了解决方案,包括实时同步Binlog、牺牲一些性能以保证数据一致性、以及配置多个从库来避免主库宕机影响。最后,总结了几种典型的HA方案的利弊,并提出了思考题,鼓励读者分享自己的高可用方案并讨论改进方法。这些内容帮助读者了解了数据备份和恢复的重要性,以及实现数据库高可用的方法,为他们在实际工作中做出最优选择提供了指导。
《后端存储实战课》,新⼈⾸单¥59
全部留言(34)
- 最新
- 精选
- 李玥置顶Hi,我是李玥。 照例说一下上节课思考题: 我们在电商的搜索框中搜索商品时,它都有一个搜索提示的功能,比如我输入“苹果”还没有点击搜索按钮的时候,搜索框下面会提示“苹果手机”、“苹果11、苹果电脑”这些建议的搜索关键字,请你课后看一下ES的文档,想一下,如何用ES快速地实现这个搜索提示功能? 在课后留言中,Geek_c76e2d同学给出的答案非常赞,我在这里就直接“盗用”了,以下是Geek_c76e2d同学的答案: 因为用户每输入一个字都可能会发请求查询搜索框中的搜索推荐。所以搜索推荐的请求量远高于搜索框中的搜索。es针对这种情况提供了suggestion api,并提供的专门的数据结构应对搜索推荐,性能高于match,但它应用起来也有局限性,就是只能做前缀匹配。再结合pinyin分词器可以做到输入拼音字母就提示中文。如果想做非前缀匹配,可以考虑Ngram。不过Ngram有些复杂,需要开发者自定义分析器。比如有个网址www.geekbang.com,用户可能记不清具体网址了,只记得网址中有2个e,此时用户输入ee两个字母也是可以在搜索框提示出这个网址的。以上是我在工作中针对前缀搜索推荐和非前缀搜索推荐的实现方案。2020-03-12163
- mickey请问,回放binlog是幂等性的,那为什么我连续执行两条相同的mysqlbinlog语句后,系统报错了呢(第一次执行正常,数据恢复)? 语句:mysqlbinlog --start-datetime "2020-04-17 10:00:00" --stop-datetime "2020-04-17 10:48:00" E:\data\test\mysql-bin.010163 | mysql -uroot -p 报错:ERROR 1062 (23000) at line 33: Duplicate entry '4' for key 'PRIMARY'
作者回复: 这正是幂等性的体现啊,已有记录重复插入会插入失败,所以报这个错忽略就好了。
2020-04-1724 - 子不语老师,您这里提到的高可用方案,把binlog日志同步到从库,然后从库立即回放。那如果是删库的动作,从库也回放,不是把从库也干掉了。
作者回复: 是的。所以回放的时候,要找准起止位点,不要回放删库动作。
2020-04-20519 - Dovelol老师好,想问下有没有什么比较好的监控mysql性能还有主从延迟之类的工具,还有就是读写分离在遇到主从延迟突然增大的情况下该怎么办呢?
作者回复: 如果只是看一下,可以连接到主库上用show slave status命令查看,如果你需要实时监控主从延迟,可以用pt-heartbeat这个工具。 如果主从延迟突然增大,需要查一下是主的问题还是某个从的问题,如果是某一个从库的问题,可以临时把这个从库下掉。如果是主库问题,那就得赶紧解决主库繁忙的问题。
2020-03-1516 - 美美一主多从同步复制有点类似于KafKa的ISR。 有一个疑惑,还请老师解惑。感觉这种模式还是会有丢数据的可能。比如,第一次请求同步到从A成功,从B延迟。第二次同步给从B,从A延迟。然后主挂掉,此时感觉切从A或者从B都会有问题。
作者回复: 这个不是有点儿类似Kafka的ISR,它们的原理根本就是一样的。 另外,你说的这种情况不会出现,因为Binlog是有序的日志,复制Binlog的时候必须按顺序复制,所以不会出现二个从节点都有一条对方没有的新数据这种情况。
2020-03-13314 - 小袁老师,你说同步复制性能差,哪到底差到一个什么样的程度呢?有定量的测试数据么?
作者回复: 同步复制时延 = 异步复制的时延 + 最慢的那个从库的复制时延 定量的来说,理论上同步复制的时延大概是异步复制的2-3倍左右。
2020-03-1711 - 旅途老师 问一下 使用全量备份和binlog增量 这个binlog 删除以前的吗?还是保留全量所有的?
作者回复: 全量备份那个时刻之前的Binlog是可以删除的。
2020-03-1510 - 刘楠binlog 日志中也是有删除库的SQL的,难道,备库或者从库不会执行吗?感觉会执行,所以数据在几个库都删除了。怎么保证备库或者从的数据?
作者回复: 像我们课程中演示的那样,可以用Binlog恢复到删库之前的那一刻啊
2020-03-1245 - J.Smile老师,如果系统只有一个binlog,而且delete操作就在这个binlog.那应该就不能回放了,因为回放的最后还是delete这个误操作!
作者回复: 你可以选择不回放这个delete操作呀。
2020-04-102 - J.Smile一主二从架构下,如果其中一个从宕机,重启后应该可以自动回放binlog吧,不然这个架构也就失去意义了!
作者回复: 是的。
2020-04-102