前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >谈谈 MySQL 延迟复制的几个好处

谈谈 MySQL 延迟复制的几个好处

作者头像
iMike
发布2019-06-02 21:21:35
1.3K0
发布2019-06-02 21:21:35
举报
文章被收录于专栏:运维之美

MySQL 的主从复制( Replication )关系,不太严谨的叫法是 “同步” 或者 “主从同步”。实际上在早期,MySQL 的主从并不能实现真正的 “同步”( Sync ),而是 “异步” 的( Async )。

MySQ L主从复制它可以有多种模式,最经典的也是最早出现的异步复制( Async Replication ),从 MySQL 5.5 版本开始有了半同步复制( Semi-Sync Replication),到了 MySQL 5.7 又有了增强半同步。

本文要讨论的延迟复制,也是在 MySQL 5.6 之后才有的功能,在这之前需要用 Percona 的 pt-slave-delay 工具来变相实现。

另外,从 MySQL 5.6 版本开始增加了并行复制,不过这时还是基于 Schema 的并行模式( slave-parallel-type=DATABASE ),效率非常差,意义不大。到了 MySQL 5.7,才实现了真正的并行复制( slave-parallel-type=LOGICAL_CLOCK ),复制效率提升很多;还有新增了多源复制,很方便的就能实现多主一从的架构。

了解完 MySQL 复制的简史,我们切入主题。

MySQL 延迟复制的好处主要有几点:

1. 误删除时,能更快恢复数据。有时候手抖了,把线上数据给误删除了,或者误删除库、表、其他对象,或不加 WHERE 条件的更新、删除,都可以让延迟从库在误操作前的时间点停下,然后进行恢复。

2. 把延迟从库作为专用的备份节点。虽然有一定的延迟,但并不影响利用该节点作为备份角色,也不影响生产节点数据库。

3. 还可以把延迟从库当做一些问题、案例研究的对象。个别时候,可能有些 Binlog Event 在普通从库上会有问题(例如:早期版本中无主键会导致从库更新非常慢的经典问题),这时就有时间在延迟从库上慢慢琢磨研究了。

启用延迟从库的方法也挺简单的,下面是在 MySQL 8.0 的做法:

代码语言:javascript
复制
#直接用 CHANGE MASTER TO 设置,后面的 N 单位是秒数CHANGE MASTER TO MASTER_DELAY = N

当发生误操作需要让延迟从库在某个位置上停下来时,用下面的命令:

代码语言:javascript
复制
START SLAVE  UNTIL {    #1.直到指定的 GTID 位置停下    {SQL_BEFORE_GTIDS | SQL_AFTER_GTIDS} = gtid_set        #2.直到指定的 Binlog 位置停下    |   MASTER_LOG_FILE = 'log_name', MASTER_LOG_POS = log_pos        #3.直到指定的 Relay Log 位置停下    |   RELAY_LOG_FILE = 'log_name', RELAY_LOG_POS = log_pos
    #4.直到 Slave上多个并行线程之前没有延迟差距了就停下    #因为多线程复制,不同线程的复制进度不一样,因此有差距    |   SQL_AFTER_MTS_GAPS  }

注:从 MySQL 5.7 起,修改 MASTER_DELAY 选项可以在线立即生效,而无需重启 Slave 线程。

至于具体 MASTER_DELAY 设置多少合适,要估算如果发生误操作时,DBA 平均能到现场的时间,一般建议 1 小时左右。

来源:老叶茶馆 原文:http://t.cn/zTbKFUJ 题图:来自谷歌图片搜索 版权:本文版权归原作者所有 投稿:欢迎投稿,投稿邮箱: editor@hi-linux.com

今日思想

世间最珍贵的不是 “得不到” 和 “已失去”,而是现在能把握的幸福。

—— 苏格拉底

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奇妙的Linux世界 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档