21.6.7 使用两个复制通道进行 NDB 群集复制

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

文本中描述的 table21.283 NDB 群集复制服务器

Server IDDescription
1源-主复制通道(* S *)
2源-辅助复制通道(* S'*)
3副本-主复制通道(* R *)
4副本-辅助复制通道(* R'*)

使用两个通道设置复制与设置单个复制通道没有根本不同。首先,必须启动主要和辅助复制源服务器的mysqld进程,然后是主要和辅助副本的启动。可以通过在每个副本上发出START SLAVE语句来启动复制过程。此处显示了命令及其发出的 Sequences:

  • 启动主复制源:
shellS> mysqld --ndbcluster --server-id=1 \
               --log-bin &
  • 启动辅助复制源:
shellS'> mysqld --ndbcluster --server-id=2 \
               --log-bin &
  • 启动主副本服务器:
shellR> mysqld --ndbcluster --server-id=3 \
               --skip-slave-start &
  • 启动辅助副本服务器:
shellR'> mysqld --ndbcluster --server-id=4 \
                --skip-slave-start &
  • 最后,通过在主副本上执行START SLAVE语句在主通道上启动复制,如下所示:
mysqlR> START SLAVE;

Warning

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

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