17.9.5.2 从时间点恢复

为了在特定时间点之前将与组和供体连接的服务器进行同步,连接组和供体的服务器使用 MySQL 全局事务标识符(GTID)机制。参见第 16.1.3 节“使用全局事务标识符进行复制”。但是,GTIDS 仅提供一种手段来了解加入该组的服务器缺少哪些事务,它们无助于标记加入该组的服务器必须赶上的特定时间点,也无助于传递证明信息。这是二进制日志视图标记的工作,它标记二进制日志流中的视图更改,并且还包含其他元数据信息,从而为加入该组的服务器提供缺少证书的相关数据。

查看和查看更改

要解释视图更改标记的概念,重要的是要了解视图和视图更改是什么。

视图对应于积极参与当前配置(即在特定时间点)的一组成员。它们是正确的,并且在系统中在线。

当对组配置进行修改(例如成员加入或离开)时,会发生“视图更改”。任何组成员身份更改都会导致在相同的逻辑时间点将独立的视图更改传达给所有成员。

视图标识符唯一地标识一个视图。每当视图更改发生时都会生成

在组通信层,视图更改及其关联的视图 ID 是成员加入之前和之后交换的数据之间的边界。这个概念是通过一个新的二进制日志事件实现的:“视图更改日志事件”。因此,视图 ID 也会成为组成员身份发生更改之前和之后传输的事务的标记。

视图标识符本身由两部分组成:*(i)是随机生成的,而(ii)*是单调递增的整数。第一部分在创建组时生成,并且在组中至少有一个成员时保持不变。每当发生视图更改时,第二部分就会增加。

组成视图 ID 的异构对的原因是,需要在成员加入或离开时以及所有成员都离开该组且没有任何信息保留该组所处视图时明确标记组更改。单调递增的标识符的唯一使用可能会导致在完全关闭组后重用相同的 id,从而破坏了恢复所依赖的二进制日志数据标记的唯一性。总而言之,第一部分标识何时从头开始组,而增量部分则从该点开始更改。