首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于MySQL半同步复制的问题

关于MySQL半同步复制的问题
EN

Database Administration用户
提问于 2013-05-05 13:08:20
回答 1查看 206关注 0票数 3

我当时正在研究MySQL半同步复制,我对工作流的理解如下:

  1. 主从客户端会话接收成功的事务。
  2. 师父把它写到他的二进制日志上
  3. 主等待rpl_semi_sync_master_timeout毫秒从至少一个从服务器接收确认
  4. 从服务器选择这个成功的事务,将它写入他的中继日志,然后将它刷新到磁盘上。
  5. 从服务器将确认返回给主人
  6. 大师成功返回到他的客户会话。

我的问题是,在任何时候,这种类型的复制都可以确保事务在从服务器上执行(SQL_TREAD应用它)。考虑到它将增加每个事务的延迟,并且在主服务器失败的情况下,不能100%地保证从服务器将与主服务器保持一致,使用这种类型的复制有什么好处(S)?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2013-05-05 15:18:50

Baron写了一篇关于这方面的优秀文章,我认为有一句关键的句子回答了你的问题:

那么半同步复制能保证我什么呢?如果没有错误或超时,那么保证从本质上说,如果主服务器崩溃,每个客户端可能只丢失一个事务。

因此,半同步复制可以最小化(但并不完全消除)出现这个问题的可能性:

  1. 复制者B的复制IO Thread开始在其主服务器A之后运行,原因是
  2. 服务器A死-无法恢复
  3. 交易永远丢失

正如在Baron的文章中所指出的(根据您的措辞,我肯定您知道这一点),它并不是防弹的--如果MySQL停止从复制者那里得到响应,它将回到常规复制--但是无法恢复的数据丢失的可能性较小。

其结果是,它防止了上述情况,它是“开箱即用”,而且它不需要任何第三方或基础设施级别的解决方案(例如Galera/Xtradb集群或DRBD)。成本是否值得,取决于你的情况。

票数 5
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/41541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档