使用两个复制通道进行NDB群集复制
在更完整的示例场景中,我们设想了两个复制通道来提供冗余,从而防止单个复制通道可能发生故障。这总共需要四个复制服务器,两个主服务器用于主群集,两个从服务器用于从群集。出于以下讨论的目的,我们假定分配的唯一标识符如下所示:
文本中描述的NDB群集复制服务器
服务器ID | 描述 |
---|---|
1个 | 主-主复制通道(M) |
2 | 主-辅助复制通道(M') |
3 | 从站-主复制通道(S) |
4 | 从站-辅助复制通道(S') |
使用两个通道设置复制与设置单个复制通道没有根本不同。首先,必须启动主要和辅助复制主服务器的mysqld进程,然后是主要和辅助从属服务器的mysqld进程。然后,可以通过START SLAVE
在每个从站上发布该语句来启动复制过程。此处显示了命令及其发出的顺序:
启动主复制主机:
shellM>
mysqld --ndbcluster --server-id=1 \ --log-bin &启动辅助复制主机:
shellM'> mysqld --ndbcluster --server-id=2 \ --log-bin &
启动主复制从服务器:
shellS>
mysqld --ndbcluster --server-id=3 \ --skip-slave-start &启动辅助复制从属:
shellS'> mysqld --ndbcluster --server-id=4 \ --skip-slave-start &
最后,通过
START SLAVE
在主从服务器上执行以下语句来在主通道上启动复制:mysqlS>
START SLAVE ;警告
此时仅要启动主通道。如“使用NDB群集复制实现故障转移”中所述,仅在主复制通道发生故障的情况下才启动辅助复制通道。同时运行多个复制通道可能导致在复制从站上创建不必要的重复记录。
如前所述,不必在复制从属服务器上启用二进制日志记录。