21.6.7 使用两个复制通道进行 NDB 群集复制
在更完整的示例场景中,我们设想了两个复制通道以提供冗余,从而防止单个复制通道可能发生故障。这总共需要四个复制服务器,源群集上的两个源服务器和副本群集上的两个副本服务器。出于以下讨论的目的,我们假定分配的唯一标识符如下所示:
文本中描述的 table21.283 NDB 群集复制服务器
Server ID | Description |
---|---|
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 群集复制实现故障转移”中所述,仅在主复制通道发生故障的情况下才需要启动辅助复制通道。同时运行多个复制通道可能导致在副本上创建不必要的重复记录。
如前所述,不必在副本上启用二进制日志记录。