Documentation Home
MySQL 8.0 参考手册  / 第 23 章 MySQL NDB Cluster 8.0  / 23.7 NDB 集群复制  /  21.7.7 使用两个复制通道进行 NDB Cluster 复制

21.7.7 使用两个复制通道进行 NDB Cluster 复制

在一个更完整的示例场景中,我们设想了两个复制通道来提供冗余,从而防止单个复制通道可能出现故障。这总共需要四台复制服务器,源集群上有两台源服务器,副本集群上有两台副本服务器。为了接下来的讨论,我们假设唯一标识符的分配如下所示:

表 21.67 文中描述的 NDB Cluster 复制服务器

服务器编号 描述
1个 源 - 主复制通道 ( S )
2个 源 - 辅助复制通道 ( S' )
3个 副本 - 主复制通道 ( R )
4个 replica - 辅助复制通道 ( R' )

使用两个通道设置复制与设置单个复制通道没有根本区别。首先, 必须启动主要和次要复制源服务器的mysqld进程,然后是主要和次要副本的进程。复制过程可以通过START SLAVE在每个副本上发出语句来启动。命令和它们需要发出的顺序如下所示:

  1. 启动主复制源:

    shellS> mysqld --ndbcluster --server-id=1 \
                   --log-bin &
  2. 启动辅助复制源:

    shellS'> mysqld --ndbcluster --server-id=2 \
                   --log-bin &
  3. 启动主副本服务器:

    shellR> mysqld --ndbcluster --server-id=3 \
                   --skip-slave-start &
  4. 启动辅助副本服务器:

    shellR'> mysqld --ndbcluster --server-id=4 \
                    --skip-slave-start &
  5. 最后,通过在主副本上执行START SLAVE 语句来启动主通道上的复制,如下所示:

    mysqlR> START SLAVE;
    警告

    此时只有主通道必须启动。仅在主复制通道发生故障时才需要启动辅助复制通道,如 第 21.7.8 节,“使用 NDB Cluster 复制实现故障转移”中所述。同时运行多个复制通道可能会导致在副本上创建不需要的重复记录。

如前所述,没有必要在副本上启用二进制日志记录。