高性能MySQL:被动模式下的主复制

作者:港云互联 时间:2019-12-10

        这是前面描述的主主结构的变体, 它能够避免我们之前讨论的问题。 这也是构建容错性和高可用性系统的非常强大的方式,主要区别在于其中的一台服务器是只读的被动服务器。



        这种方式使得反复切换主动和被动服务器非常方便,因为服务器的配置是对称的。这使得故障转移和故障恢复很容易。它也可以让你在不关闭服务器的情况下执行维护、优化表、升级操作系统(或者应用程序、硬件等)或其他任务。



        例如,执行ALTER TABLE 操作可能会锁住整个表,阻塞对表的读和写,这可能会花费很长时间并导致服务中断。然而在主-主配置下,可以先停止主动服务器上的备库复制线是(这样就不会在被动服务器上执行任何更新),然后在被动服务器上执行ALTER操作,交换角色,最后在先前的主动服务器上启动复制线程。这个服务器将会读取中继日志并执行相同的ALTER语句。这可能花费很长时间,但不要紧,因为该服务器没有为任何话跃查询提供服务。

高性能MySQL


        主动-被动模式的主-主结构能够帮助回避许多MySQL的问题和限制,此外还有一些工具可以完成这种类型的操作。



        让我们看看如何配置主一主服务器对,在两台服务器上执行如下设置后,会使共拥有对称的设置:



1. 确保两台服务上有相同的数据。



2.启用二进制目志,选择唯的服务器ID, 并创建复制账号。



3.启用备库更 新的目志记录,后面将公看到,这是故障转移和故障恢复的关键。



4. 把被动服务2配置成只读,防止可能与主动服务器上的更新产生冲突,这一点是可选的。



5.启动每个服务器的MySQL实例。



6.将每个主库设置为对方的备库,使用新创建的二进制日志开始工作。



        让我们看看主动服务器上更新时会发生什么事情。更新被记录到二进制日志中,通过复制传递给被动服务器的中继日志中。被动服务器执行查询并将其记录到自己的二进制日志中(因为开启了logslaveupdates选项)。由于事件的服务器ID与主动服务器的相同,因此主动服务器将忽略这些事件。在后面的“修改主库”可了解更多的角色切换相关内容。



        设置主动一被动的主-主拓扑结构在某种意义上类似于创建一个热备份,但是可以使用这个“备份”来提高性能,例如,用它来执行读操作、备份、“离线”维护以及升级等。真正的热备份做不了这些事情。然而,你不会获得比单台服务器更好的写性能。



        当我们讨论使用复制的场景和用途时,还会提到这种复制方式。它是一种非常常见并且重要的拓扑结构。


新人注册,即送价值满880元现金劵

立即注册>>
客服 电话 反馈 活动 回顶部

服务热线

+852-5764-9835

1对1贴心服务,7X24小时热线