文档主页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  MySQL NDB Cluster 9.0  /  NDB Cluster 复制

25.7 NDB Cluster 复制

NDB Cluster 支持 异步复制,通常简称为 复制。本节介绍如何设置和管理一个配置,其中一组作为 NDB Cluster 运行的计算机复制到第二台计算机或一组计算机。我们假设读者对本手册其他地方讨论的标准 MySQL 复制有一些了解。(参见 第 19 章,复制)。

注意

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

正常(非集群)复制涉及一个源服务器和一个副本服务器,源服务器之所以这样命名是因为要复制的操作和数据起源于它,而副本服务器是这些操作和数据的接收者。在 NDB Cluster 中,复制在概念上非常相似,但在实践中可能更复杂,因为它可以扩展到涵盖许多不同的配置,包括在两个完整集群之间进行复制。虽然 NDB Cluster 本身依赖于 NDB 存储引擎来实现集群功能,但对于副本的复制表的副本,不一定要使用 NDB 作为存储引擎(参见 从 NDB 到其他存储引擎的复制)。但是,为了获得最大的可用性,可以(也是首选)从一个 NDB Cluster 复制到另一个 NDB Cluster,而我们讨论的正是这种情况,如下图所示

图 25.10 NDB Cluster 到 NDB Cluster 复制布局

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 Cluster 和 NDB Cluster 复制执行时间点恢复的信息,请参见 第 25.7.9.2 节,“使用 NDB Cluster 复制进行时间点恢复”

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

从 NDB 到非 NDB 表的复制。 可以从充当复制源的 NDB Cluster 复制 NDB 表,复制到使用其他 MySQL 存储引擎(如 InnoDBMyISAM)的副本 mysqld 上的表。这需要满足若干条件;请参见 从 NDB 到其他存储引擎的复制从 NDB 到非事务性存储引擎的复制,了解更多信息。