在一个更完整的示例场景中,我们设想了两个复制通道来提供冗余,从而防止单个复制通道可能出现故障。这总共需要四台复制服务器,源集群上有两台源服务器,副本集群上有两台副本服务器。为了接下来的讨论,我们假设唯一标识符的分配如下所示:
表 21.67 文中描述的 NDB Cluster 复制服务器
服务器编号 | 描述 |
---|---|
1个 | 源 - 主复制通道 ( S ) |
2个 | 源 - 辅助复制通道 ( S' ) |
3个 | 副本 - 主复制通道 ( R ) |
4个 | replica - 辅助复制通道 ( R' ) |
使用两个通道设置复制与设置单个复制通道没有根本区别。首先,
必须启动主要和次要复制源服务器的mysqld进程,然后是主要和次要副本的进程。复制过程可以通过START
SLAVE
在每个副本上发出语句来启动。命令和它们需要发出的顺序如下所示:
启动主复制源:
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;
警告此时只有主通道必须启动。仅在主复制通道发生故障时才需要启动辅助复制通道,如 第 21.7.8 节,“使用 NDB Cluster 复制实现故障转移”中所述。同时运行多个复制通道可能会导致在副本上创建不需要的重复记录。
如前所述,没有必要在副本上启用二进制日志记录。