10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册摘录

18.1.1.2组复制

组复制技术,可用于实现容错系统。复制组是一组服务器,每个都有自己的数据的整个副本(无共享复制计划),并通过消息传递相互作用。通信层提供了一组保证如原子和总订单消息传递的消息。这些都是非常强大的属性转化为非常有用的抽象,可以诉诸构建更高级的数据库复制解决方案。

MySQL组复制基于这些属性和抽象,实现了多源更新到处复制协议。复制组是由多个服务器和组中的每个服务器可能在任何时候独立执行交易。然而,所有读写事务提交之后才被批准的。换句话说,对于任何读写事务组需要决定是否提交,所以提交操作从原始服务器不是一个单方面的决定。只读事务不需要立即协调集团内部和提交。

当一个读写事务准备提交原始服务器,服务器自动广播写值(改变的行)和相应的编写(更新的行)的惟一标识符。因为事务发送通过原子广播、组中的所有服务器接收事务或没有做的事情。如果他们接受它,那么他们都收到同样的订单发送之前对其他事务。因此所有服务器接收相同的交易在相同的顺序,和建立全球总秩序事务。

然而,可能会有冲突的事务并发执行在不同的服务器上。这样的冲突是发现通过检查和比较两种不同的编写集和并发事务,这一过程被称为认证。认证期间,进行冲突检测行级:如果两个并发事务,不同的服务器上执行,更新相同的行,然后有一个冲突。冲突解决程序,下令对所有服务器第一次提交的事务,事务下令第二中止,因此回滚在原始服务器和下降中的其他服务器组。例如,如果t1和t2并发执行在不同的网站,这两个变化的同一行,t1和t2是有序的,那么t2赢得冲突和t1是回滚。这实际上是一个分布式第一次提交获胜的规则。注意,如果两个事务往往注定要冲突,那么它就是一个很好的实践开始他们在同一台服务器上,在那里他们有机会在本地同步锁管理器,而不是回滚的认证。

申请注册事务和外化、组复制许可证服务器偏离同意订单的交易如果这并不违反一致性和有效性。组复制是一个最终一致性的系统,这意味着一旦传入流量减慢或停止,所有的小组成员有相同的数据内容。虽然交通流动,事务可以外部化顺序略有不同,或外部化有些成员之前。例如,在multi-primary模式中,一个本地事务可能外部化认证后,尽管早些时候远程事务全球秩序尚未应用。这是允许的认证过程建立了时没有事务之间的冲突。在单一主模式中,在主服务器上,有一个小机会,并发冲突性本地事务可能以不同的顺序提交并外部化从达成的全球秩序组复制。二期梅毒疹,不接受来自客户写道,事务总是同意订单提交并外部化。

下图描述了MySQL组复制协议,通过对比MySQL复制(甚至MySQL semisynchronous复制)你可以看到一些不同。缺少一些基本共识,Paxos相关消息这张照片的清晰度。

图18.3 MySQL组复制协议

一个事务受到源1执行。源1然后发送一条消息到复制集团组成的本身,源2和3。当所有三个成员达成共识,他们认证事务。源1二进制日志然后写事务,提交,并将响应发送给客户机应用程序。源2和3写事务中继日志,然后应用它,把它的二进制日志,并提交它。