设为首页收藏本站

全球主机交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: discuz
查看: 1124|回复: 0
打印 上一主题 下一主题

MySQL 5.7.3的Semi-Synchronous Replication持久化数据到多个Slave上

[复制链接]

该用户从未签到

跳转到指定楼层
楼主
发表于 2014-1-2 13:59:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在MySQL5.7.3上, 我们发布了一个新的semi-synchronous功能。使用这个功能,可以更好的保障数据一致性和持久性。下面,请允许我为大家介绍一下这个功能。
在读这篇文章之前,你需要知道什么是semi-synchronous replication. 如果你以前没有了解过semi-synchronous replication,你可以阅读MySQL手册的 Seim-Synchronous Replication 章节。 MySQL 手册介绍的很详细,这里我就不再赘述了。
持久化数据到多个Slave这个新功能允许用户设置:在事物成功提交之前,它的数据应该被复制到多少个slave上。换句话说,semisync master的事物需要等待多少个slave给它应答。简化的处理过程如下图所示:

Master和Slave同时出故障是很少发生的,但是仍然会发生。比如,如果master和slave在同一个数据中心,那么数据中心突然断电将导致master和slave同时不可用。 通过使用这个新功能,你可以将多个semisync slave安装在不同的地点,并且配置semisync master 复制事物的数据到至少2个slave上,来增加MySQL 数据库系统的可用性。配置semisync master复制事物到越多的semisync slave,就会有越好的数据持久性。

如何配置这个功能这个功能添加了一个新的semisync master plugin 系统变量。
  • rpl_semi_sync_master_wait_slave_count

这是一个整形的变量,有效值为1-1024. 从这个变量我们可以看出,这个功能只关心数据应该被复制到多少个slave上,而不关心数据被复制到哪些slave上。它的缺省值是1,可以被动态的修改。你也许奇怪为什么可以动态的修改,下面我介绍一下动态修改时的逻辑:
  • 当配置修改后,新的配置将会应用到所有正在等待的事物上包括那些在修改之前就开始等待的事物。
假设rpl_semi_sync_master_wait_slave_count = 2,两个slave分别是slave1 和 slave2.

  • Transaction1 开始等待2个 ACKs.
  • Semisync master 收到 slave1的ACK
  • 用户运行 slave3,并且修改semisync master的 rpl_semi_sync_master_wait_slave_count 为 3
  • Semisync master 收到slave2的ACK(此时transaction1仍然要等待)
  • Semisync master 收到slave3的ACK
  • Semisync master 唤醒正在等待的transaction1
从上面的执行过程可以看到, Transaction1 需要等带3个ACK.

减小rpl_semi_sync_master_wait_slave_count也是相似的:
  • Transaction1 开始等待 3个 ACK.
  • Semisync master 收到了slave1 和slave2的ACK.
  • 用户修改 rpl_semi_sync_master_wait_slave_count 为 2.
  • Semisync master唤醒transaction1,因为它已经收到了 2个 ACK

结论通过使用这个功能,用户的MySQL数据库系统对大的事故有更强的抵抗力,甚至能在灾难中存活下来,保持可用性。如果正在担心这样的问题发生,那么这个功能是为你准备的,请试用MySQL-5.7.3的semi-synchronous replication.

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|中国U网    

GMT+8, 2024-5-21 12:52 , Processed in 0.067059 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表