Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  MySQL NDB Cluster 8.4  /  NDB Cluster Replication

25.7 NDB 集群复制

NDB 集群支持异步复制,也常被称作“复制”。本节将解释如何设置和管理一个配置,其中一组计算机作为 NDB 集群成员对另一个计算机或另一组计算机进行复制。我们假设读者对 MySQL 复制有一定的了解,详细内容请参考本手册其他部分的讨论。(参见第19章 复制。)

Note

NDB 集群不支持使用 GTIDs 的复制;半同步复制和组复制也是由 NDB 存储引擎所不支持的功能。

普通(非集群)复制涉及一个源服务器和一个副本服务器,源服务器因为操作和要复制的数据起源于它,而副本服务器是这些操作和数据的接收者。在NDB集群中,复制概念上非常相似,但在实际操作中可能更为复杂,因为它可以扩展到包括两个完整集群之间的复制。尽管一个NDB集群自身依赖于NDB存储引擎来提供集群功能,但并不一定需要在副本服务器复制的表的副本中使用NDB作为存储引擎(参见从NDB到其他存储引擎的复制)。然而,对于最大化可用性,能够(并且更倾向于)将一个NDB集群复制到另一个,并且是这种场景的讨论,我们将在以下图中展示它:

图25.10 NDB集群之间的复制布局

Much of the content is described in the surrounding text. It visualizes how a MySQL source is replicated. The replica differs in that it shows an I/O (receiver) thread pointing to a relay binary log which points to an SQL (applier) thread. In addition, while the binary log points to and from the NDBCLUSTER engine on the source server, on the replica it points directly to an SQL node (MySQL server).

在这种情况下,复制过程涉及将源集群的连续状态记录并保存到副本集群。这个过程由每个MySQL服务器上运行的一个特殊线程——NDB二进制日志注入器线程来完成,它产生一个二进制日志(binlog)。这个线程确保了所有在生成二进制日志的集群中发生的更改,不仅限于通过MySQL Server进行的更改,都会以正确的序列化顺序被插入到二进制日志中。我们将使用NDB Cluster和NDB Cluster Replication中的MySQL源服务器和副本服务器称为复制服务器或复制节点,而它们之间的数据流或通信线路则被称为一个复制通道

关于使用NDB Cluster和NDB Cluster Replication进行点时恢复的信息,请参阅第25.7.9.2节,“使用NDB Cluster Replication进行点时恢复”

NDB API 复制状态变量。 NDB API 计数器可以提供对复制集的增强监控能力。这些计数器以 NDB 统计信息 _replica 状态变量的形式实现,见在 SHOW STATUS 的输出中,或在连接到 NDB 集群复制中的 MySQL 服务器的 mysql 客户端会话对 Performance Schema session_ statusglobal_status 表的查询结果中。通过比较这些状态变量的值,执行影响复制 NDB 表的语句之前和之后,您可以观察到在 NDB API 级别上复制中所采取的相应操作,这对于监控或故障排除 NDB 集群复制非常有用。有关更多信息,请参阅 第 25.6.16 节,“NDB API 统计信息计数器和变量”

从NDB到非NDB表的复制。 可以将一个作为复制源的NDB集群中的表复制到使用其他MySQL存储引擎(如InnoDBMyISAM)的表。这个过程需要满足一定条件,详细信息请参阅从NDB到其他存储引擎的复制从NDB到非事务性存储引擎的复制