Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  MySQL NDB Cluster 8.3  /  NDB Cluster Replication

25.7 NDB 集群复制

NDB 集群支持异步复制,通常简称为“复制”。本节解释如何设置和管理一个配置,其中一组计算机作为 NDB 集群复制到第二台计算机或一组计算机。我们假设读者熟悉标准 MySQL 复制,如本手册其他地方所述。(见 第 19 章,复制)。

Note

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

普通(非聚簇)复制涉及源服务器和副本服务器,源服务器因此命名,因为操作和要复制的数据来自它,而副本服务器是这些数据的接收者。在 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).

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

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

NDB API 副本状态变量。 NDB API 计数器可以在副本集群上提供增强的监控能力。这些计数器是作为 NDB 统计 _replica 状态变量实现的,如 SHOW STATUS 的输出或在 session_statusglobal_status 表中的查询结果所示,在 mysql 客户端会话中连接到作为副本的 MySQL 服务器时。通过比较这些状态变量在执行影响复制表的语句之前和之后的值,可以观察到 NDB API 级别上副本的相应操作,这在监控或故障排除 NDB 集群复制时非常有用。第 25.6.16 节,“NDB API 统计计数器和变量” 提供了更多信息。

从 NDB 到非 NDB 表的复制。 可以将 NDB 表从作为复制源的 NDB 集群复制到使用其他 MySQL 存储引擎(如 InnoDBMyISAM)的表在副本 mysqld 上。这取决于一些条件;请参阅 从 NDB 到其他存储引擎的复制从 NDB 到非事务性存储引擎的复制,以获取更多信息。