10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国Ltr)- 36.3 mb
PDF (A4)- 36.3 mb
手册(TGZ)- 236.9 kb
手册(Zip)- 348.3 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

17.1组复制背景信息

本节介绍MySQL组复制的背景信息。

创建容错系统最常见的方法是使组件冗余,换句话说,可以删除组件,而系统应该按照预期继续运行。这就产生了一系列的挑战,将这类系统的复杂性提升到一个完全不同的水平。具体来说,复制数据库必须处理这样一个事实,即它们需要维护和管理多个服务器,而不是一个。此外,由于服务器在一起合作创建群组,还必须处理其他几个经典的分布式系统问题,如网络分区或大脑分裂场景。

因此,最终的挑战是将数据库和数据复制的逻辑与以一致和简单的方式协调多个服务器的逻辑相融合。换句话说,就是让多个服务器就系统的状态和系统所经历的每一次更改的数据达成一致。这可以概括为让服务器就每个数据库状态转换达成一致,以便它们都作为一个数据库进行进展,或者它们最终收敛到相同的状态。这意味着它们需要作为(分布式)状态机操作。

MySQL组复制提供分布式状态机复制与服务器之间的强大协调。当服务器属于同一组时,它们会自动进行协调。该组可以在具有自动初选的单初选模式下运行,即一次只有一台服务器接受更新。另外,对于更高级的用户,可以将组部署在多主模式中,在这种模式下,所有服务器都可以接受更新,即使更新是并发发出的。这种能力是以应用程序必须绕过此类部署带来的限制为代价的。

有一个内置的组成员服务,它保持组视图的一致性,并在任何给定时间点对所有服务器可用。服务器可以离开或加入组,视图也相应更新。有时服务器会意外地离开组,在这种情况下,故障检测机制会检测到这一点,并通知组视图已更改。这一切都是自动的。

要提交事务,组中的大多数成员必须就给定事务在全局事务序列中的顺序达成一致。决定提交或终止事务由每个服务器单独完成,但所有服务器都做出相同的决定。如果存在一个网络分区,导致成员无法达成协议的分裂,那么系统将无法继续运行,直到该问题得到解决。因此,它也有一个内置的、自动的裂脑保护机制。

所有这些都由提供的群通信系统(GCS)协议提供支持。它们提供了故障检测机制、组成员服务以及安全且完全有序的消息传递。所有这些属性都是创建一个确保数据在服务器组之间一致复制的系统的关键。该技术的核心在于Paxos算法的实现。它充当群通信引擎。