暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL复制技术之源到副本复制

Tonyhacks 2024-03-07
95

传统的 MySQL复制提供了一种简单的源到副本复制方法。源是主要的,并且有一个或多个副本,这些副本是辅助的。源应用事务,提交它们,然后将它们(因此异步)发送到副本以重新执行(在基于语句的复制中)或应用(在基于行的复制中)。它是一个无共享系统,默认情况下所有服务器都拥有数据的完整副本。

MySQL异步复制

执行源接收到的事务,将其写入二进制日志,然后提交,并将响应发送到客户端应用程序。 在源上进行提交之前,二进制日志中的记录将发送到副本 1 和副本 2 上的中继日志。 在每个副本上,应用事务、写入副本的二进制日志并提交。 源上的提交和副本上的提交都是独立且异步的。
image.png
执行源接收到的事务,将其写入二进制日志,然后提交,并将响应发送到客户端应用程序。 在源上进行提交之前,二进制日志中的记录将发送到副本 1 和副本 2 上的中继日志。 在每个副本上,应用事务、写入副本的二进制日志并提交。 源上的提交和副本上的提交都是独立且异步的。

还有一种半同步复制,它在协议中添加了一个同步步骤。这意味着主服务器在应用时等待辅助服务器确认它已收到事务。只有这样主数据库才会恢复提交操作。

MySQL半同步复制

源接收到的事务被执行并写入二进制日志。 二进制日志中的记录将发送到副本 1 和副本 2 上的中继日志。然后,源等待副本的确认。 当两个副本都返回确认时,源提交事务,并将响应发送到客户端应用程序。 每个副本返回其确认后,它会应用事务,将其写入二进制日志,然后提交。 源上的提交取决于副本的确认,但副本上的提交彼此独立,也独立于源上的提交。
image.png
源接收到的事务被执行并写入二进制日志。 二进制日志中的记录将发送到副本 1 和副本 2 上的中继日志。然后,源等待副本的确认。 当两个副本都返回确认时,源提交事务,并将响应发送到客户端应用程序。 每个副本返回其确认后,它会应用事务,将其写入二进制日志,然后提交。 源上的提交取决于副本的确认,但副本上的提交彼此独立,也独立于源上的提交。

在这两张图片中,有一个经典异步 MySQL 复制协议(及其半同步变体)的图表。不同实例之间的箭头表示服务器之间交换的消息或服务器与客户端应用程序之间交换的消息。

最后修改时间:2024-03-07 09:06:49
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论