MySQL 8.4 Release Notes
25.7.7 使用两个复制通道进行 NDB 集群复制
在一个更完整的示例场景中,我们设想使用两个复制通道以提供冗余,从而防止单个复制通道可能发生的故障。这需要总共四个复制服务器,两个源服务器位于源集群中,两个副本服务器位于副本集群中。为了讨论接下来的内容,我们假设分配了唯一标识符,如下所示:
表25.45 NDB 集群复制服务器的描述
Server ID | Description |
---|---|
1 | 源 - 主复制通道 (S) |
2 | 源 - 副本复制通道 (S') |
3 | 副本 - 主复制通道 (R) |
4 | 副本 - 副本复制通道 (R') |
使用两个通道进行复制与设置单个复制通道的过程相似。首先,必须启动源集群中主和辅助复制源服务器的 mysqld 进程,然后是副本集群中主和辅助复制服务器的进程。可以通过在每个副本上发出 START REPLICA
语句来启动复制进程。命令及其顺序如下所示:
-
启动主复制源服务器:
shellS> mysqld --ndbcluster --server-id=1 \ --log-bin &
-
启动辅助复制源服务器:
shellS'> mysqld --ndbcluster --server-id=2 \ --log-bin &
-
启动主复制服务器:
shellR> mysqld --ndbcluster --server-id=3 \ --skip-replica-start &
-
启动从复制服务器:
shellR'> mysqld --ndbcluster --server-id=4 \ --skip-replica-start &
-
最后,在主服务器上执行以下命令来初始化复制:
START REPLICA
,如下所示:mysqlR> START REPLICA;
Warning在这个阶段,只需启动主复制通道。如主复制通道失败时,需要启动从复制通道,这在第 25.7.8 节“使用 NDB 集群复制进行故障转移”中有描述。同时运行多个复制通道可能会导致在副本上创建不必要的重复记录。
如前所述,不需要在副本服务器上启用二进制日志记录功能。