介绍使用单个复制区域通道启动NDB集群复制的操作步骤。
通过发出以下命令启动MySQL复制源服务器:
壳牌年代> mysqld——ndbcluster——server-id=id\——log-bin——ndb-log-bin &
在前面的陈述中,
id
是该服务器的唯一ID(参见第21.6.2节“NDB集群复制的一般要求”).这将启动服务器的mysqld使用正确的日志格式启用二进制日志记录的处理。请注意您还可以用
——binlog-format =混合
在这种情况下,在集群之间复制时自动使用基于行的复制。NDB集群复制不支持基于语句的二进制日志记录(参见第21.6.2节“NDB集群复制的一般要求”).启动MySQL副本服务器,如下所示:
壳牌R> mysqld——ndbcluster——server-id=id&
在刚才显示的命令中,
id
是副本服务器的唯一ID。没有必要在副本上启用日志记录。请注意你应该使用
——skip-slave-start
选项,否则应该包含skip-slave-start
在副本服务器的my.cnf
文件,除非您想立即开始复制。使用此选项,复制的开始将被延迟到适当的时间开始的奴隶
声明已经发出,如下面的步骤4所述。需要将复制服务器与源服务器的复制二进制日志同步。如果以前没有在源上运行二进制日志记录,那么在副本上运行以下语句:
mysqlR> change master to -> master_log_file = ", -> master_log_pos =4;
这指示副本从日志的起始点开始读取源服务器的二进制日志。否则—也就是说,如果使用备份从源加载数据—请参阅第21.6.8节“使用NDB集群复制实现故障转移”,以了解如何获取要用于的正确值
MASTER_LOG_FILE
而且MASTER_LOG_POS
在这种情况下。方法发出此命令,从而指示副本开始应用复制mysql副本上的客户端:
mysqlR>开始的奴隶;
这还启动了从源到副本的数据和更改的传输。
也可以使用两个复制通道,其方式与下一节描述的过程类似;这与使用单个复制区域通道之间的区别在于第21.6.7节“使用两个复制通道实现NDB集群复制”.
还可以通过启用来提高集群复制性能批处理更新.可以通过设置slave_allow_batching
副本上的系统变量mysqld流程。通常,一收到更新就应用更新。但是,使用批处理会导致每次更新应用32 KB的批;这可以导致更高的吞吐量和更少的CPU使用,特别是在单个更新相对较小的情况下。
批处理是按时期进行的;属于多个事务的更新可以作为同一批处理的一部分发送。
所有未完成的更新都是在到达一个epoch的结束时应用的,即使更新总数小于32 KB。
可以在运行时开启和关闭批处理。要在运行时激活它,你可以使用这两个语句中的任何一个:
SET GLOBAL slave_allow_batch = 1;SET GLOBAL slave_allow_batch = ON;
如果某个特定的批处理导致了问题(例如一个语句的效果没有被正确复制),可以使用以下语句之一来禁用批处理:
SET GLOBAL slave_allow_batch = 0;SET GLOBAL slave_allow_batch = OFF;
可以通过适当的方法检查当前是否正在使用批处理显示变量
像这样的声明:
mysql>显示变量为slave%;+---------------------------+-------+ | Variable_name |值 | +---------------------------+-------+ | 上slave_allow_batching | | | slave_compressed_protocol了| | | slave_load_tmpdir | / tmp | | slave_net_timeout | 3600 | | slave_skip_errors了| | | slave_transaction_retries | 10 | +---------------------------+-------+ 6行集(0.00秒)