山东001在线

 找回密码
 立即注册
搜索
查看: 45|回复: 0

洞察高性能MySQL:主动模式下的主——主复制

[复制链接]
  • TA的每日心情
    奋斗
    2023-7-4 17:12
  • 签到天数: 96 天

    [LV.6]常住居民II

    发表于 2023-3-11 21:54:27 | 显示全部楼层 |阅读模式

    主一主复制(也叫双主复制或双向复制)包含两台服务器,每一个 都被配置成对方的主库和备库,换句话说,它们是一对主库。[url=https://www.simcentric.com/sc/]新天域互联[/url]的相关资讯可以到我们网站了解一下,从专业角度出发为您解答相关问题,给您优质的服务!https://www.simcentric.com/sc/[align=center]http://www.bignethk.com/upload/2019-10/07/thumb_1.png[/align]








               主动一主动模式下主一主复制有些应用场景, 但通常用F特殊的目的,一个可能的应用场景是两个处于不同地理位置的办公室,并且都需要一份可写的数据拷贝。








               这种配置最大的问题心如何解决冲突,两个可写的互主服务器导致的问题非常多,这通常发生在两台服务器同时修改行记录, 成同时在两台服务器上向一个包含AUTO_INCREMENT列的表里插入数据。








            MSQL不支持多主库复制








               多主库复制( )特指一个各库有多个主库。不管之前你知道什么,但MSQL (和其他数据库产品不一样)现在不支持,本章稍后我们会向你介绍如何模仿多主库复制。








               MSQL 50增加了些特性, 使得这种配置稍微安全 了点,就是设置 _和_  。 通过这两个选项可以让MSQL自动为INSERT语句选择不互相冲突的值。然而允许向两台主库上写人仍然很危险。在两台机器上根据不同的顺序更新,可能会导致数据不同步。例如,一个只有一列的表, 只有一行值为1的记录,假设同时执行下面两条语句:








            在第一台主库上:








                UPDATE  SET = + 1;








            在第二台主库上:








                UPDATE  SET = * 2;








               事实上这些问题经常一周发生三次,并且我们也发现需要好几个月才能解决这些问题。那么结果呢?一台服务器上值为4,另一台的值为3,并且没有报告任何复制错误。








               数据不同步还仅仅是开始。当正常的复制发生错误作止了,但应用仍在同时向两台服务器写人数据,这时候会发生什么呢?你不能简单地把数据从一台服务器复制到另外一台,因为这两台机器上需要复制的数据都可能发生了变化。解决这个问题将会非常困难。








               如果足够仔细地配置这种架构,例如很好地划分数据和权限,并且你很清楚自己在做什么,可以避免一些问题。 然而这通常很难做好,并且有更好的办法来实现你所需要的。








               总地来说,允许向两个服务器上写人所带来的麻烦远远大于其带来的好处,但下一节描述的主动被动模式则会非常有用。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|山东001在线 ( ICP11027147 )

    GMT+8, 2026-4-4 15:50 , Processed in 0.039080 second(s), 19 queries , Gzip On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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