10bet网址
MySQL 5.6参考手册
相关的文档10bet官方网站 下载本手册 本手册节选

18.6 NDB集群复制

NDB集群支持异步复制,通常简称为复制.本节解释如何设置和管理一个配置,在该配置中,一组作为NDB集群运行的计算机将复制到另一台或多台计算机。我们假设读者对标准MySQL复制有一定的熟悉,如本手册其他地方讨论的。(见17章,复制).

请注意

NDB集群不支持使用gtid进行复制;方法也不支持半同步复制NDB存储引擎。

正常(非集群)复制涉及一个源服务器(以前称为服务器))和副本服务器(以前称为奴隶),源之所以如此命名,是因为要复制的操作和数据源自它,而副本是这些操作和数据的接收者。在NDB集群中,复制在概念上非常相似,但在实践中可能更加复杂,因为它可能被扩展到包括两个完整集群之间的复制在内的许多不同配置。虽然NDB集群本身依赖于NDB存储引擎用于集群功能,没有必要使用NDB作为复制表副本的存储引擎(请参阅从NDB复制到其他存储引擎).然而,为了最大限度地提高可用性,可以(而且更可取)从一个NDB集群复制到另一个NDB集群,我们讨论的就是这种场景,如下图所示:

图18.22 NDB Cluster-to-Cluster Replication Layout

大部分内容都在周围的文字中描述。它可视化了如何复制MySQL源。副本的不同之处在于,它显示了一个I/O线程指向一个中继二进制日志,该日志指向一个SQL线程。此外,虽然二进制日志指向源服务器上的NDBCLUSTER引擎,但在副本上它直接指向一个SQL节点(MySQL服务器)。

在这个场景中,复制过程是记录源集群的连续状态并将其保存到复制集群的过程。这个过程是由一个被称为NDB二进制日志注入器线程的特殊线程完成的,它运行在每个MySQL服务器上,并产生一个二进制日志(binlog).这个线程确保集群中产生二进制日志的所有更改(不仅仅是通过MySQL服务器影响的更改)都以正确的序列化顺序插入到二进制日志中。我们将MySQL源服务器和复制服务器称为复制服务器或复制节点,将它们之间的数据流或通信线路称为复制节点复制通道

有关使用NDB集群和NDB集群复制执行时间点恢复的信息,请参见第18.6.9.2节,“使用NDB集群复制进行时间点恢复”

NDB API副本状态变量。NDB API计数器可以增强副本集群的监控能力。这些计数器被实现为NDB统计数据_slave的输出中所示的状态变量显示状态,或在查询结果中对SESSION_STATUSGLOBAL_STATUS表中的mysql连接到MySQL服务器的客户端会话,在NDB集群复制中充当副本。通过比较影响复制的语句执行前后这些状态变量的值NDB表,您可以观察到副本在NDB API级别上采取的相应操作,这在监视或故障排除NDB集群复制时非常有用。18.5.13节“NDB API统计计数器和变量”,提供附加信息。

从NDB表复制到非NDB表。这是可以复制的NDB表从NDB集群作为复制源到表使用其他MySQL存储引擎,如InnoDBMyISAM在复制品上mysqld.这取决于若干条件;看到从NDB复制到其他存储引擎,从NDB复制到非事务性存储引擎,以获取更多资料。