文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (美国信纸) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  MySQL NDB Cluster 8.4  /  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 Server 执行的更改)都以正确的序列化顺序插入二进制日志。我们将 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 Server 的 mysql 客户端会话。通过比较影响复制的 NDB 表的语句执行前后这些状态变量的值,您可以观察到副本在 NDB API 级别所采取的相应操作,这在监控或故障排除 NDB Cluster 复制时非常有用。 第 25.6.16 节,“NDB API 统计计数器和变量” 提供了更多信息。

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