10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 本手册下载 本手册摘录

21.6.2 NDB集群复制一般要求

复制通道需要两个MySQL服务器作为复制服务器(源服务器和副本服务器各一个)。例如,这意味着在有两个复制通道(为冗余提供额外通道)的复制设置中,应该总共有4个复制节点,每个集群两个。

本节和以下描述的NDB集群复制依赖于基于行的复制。这意味着MySQL服务器必须运行复制源——binlog-format =行--binlog-format =混合,如第21.6.6节,“启动NDB集群复制(单复制区域通道)”。有关基于行复制的一般信息,请参见第16.2.1节,“复制格式”

重要的

如果您试图使用NDB集群复制——binlog-format =声明,复制无法正常工作ndb_binlog_index源集群和时代列的ndb_apply_status复制集群上的表未被更新(参见第21.6.4节,“NDB集群复制模式和表”)。相反,只有充当复制源的MySQL服务器上的更新才会传播到副本,而源集群中任何其他SQL节点的更新都不会被复制。

的默认值——binlog-format选择是混合

在任意一个集群中用于复制的每个MySQL服务器必须在参与任意一个集群的所有MySQL复制服务器之间唯一标识(不能让源集群和复制集群上的复制服务器共享相同的ID)。属性启动每个SQL节点即可实现这一点——服务器id =id选项,id是唯一的整数。虽然这不是严格必要的,但是为了讨论的目的,我们假设所有的NDB Cluster二进制文件都是相同的发布版本。

在MySQL复制中,两个MySQL服务器(mysqld所涉及的进程)必须在所使用的复制协议版本和所支持的SQL特性集(参见第16.4.2节,“MySQL版本间的复制兼容性”)。由于NDB Cluster和MySQL Server 5.7发行版中的二进制文件之间的这种差异,NDB Cluster Replication有额外的要求mysqld二进制文件来自于NDB Cluster发行版。最简单的方法来保证mysqld服务器是兼容的是使用相同的NDB集群分布的所有源和副本mysqld二进制文件。

我们假设复制服务器或集群专用于源集群的复制,并且没有其他数据存储在其上。

所有NDB复制的表必须使用MySQL服务器和客户机创建。使用NDB API创建的表和其他数据库对象(例如,字典::不知道())对MySQL服务器是不可见的,所以不会被复制。NDB API应用程序对使用MySQL服务器创建的现有表的更新可以被复制。

请注意

可以使用基于语句的复制来复制NDB集群。但是,在这种情况下,适用以下限制:

  • 对作为源的集群上的数据行的所有更新必须定向到单个MySQL服务器。

  • 不可能使用多个同时的MySQL复制进程来复制一个集群。

  • 只复制SQL级别的更改。

这些是基于语句的复制相对于基于行的复制的其他限制;看到第16.2.1.1节,“基于语句和基于行复制的优缺点”,获取有关这两种复制格式之间差异的更具体信息。