• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 启动NDB群集复制(单个复制通道)

    本节概述了使用单个复制通道启动NDB群集复制的过程。

    1. 通过发出以下命令来启动MySQL复制主服务器:

      shellM>mysqld --ndbcluster --server-id=id \
              --log-bin --ndb-log-bin &
      

      在上一条语句中,id是该服务器的唯一ID(请参见“ NDB群集复制的一般要求”)。这将启动服务器的mysqld进程,并使用正确的日志记录格式启用二进制日志记录。还必须NDB使用--ndb-log-bin选项启用对表的更新的日志记录。这是对以前版本的NDB Cluster的更改,该版本默认情况下启用了此选项。

      注意

      您也可以使用来启动主服务器--binlog-format=MIXED,在这种情况下,在群集之间进行复制时会自动使用基于行的复制。STATEMENT NDB群集复制不支持基于二进制的日志记录(请参见“ NDB群集复制的一般要求”)。

    2. 启动MySQL复制从服务器,如下所示:

      shellS>mysqld --ndbcluster --server-id=id &
      

      在刚刚显示的命令中,id是从属服务器的唯一ID。不必启用复制从属服务器上的日志记录。

      注意

      您应该将此--skip-slave-start选项与该命令一起使用,否则应包括skip-slave-start在从属服务器的my.cnf文件中,除非您希望复制立即开始。使用此选项,复制开始将延迟到START SLAVE发出适当的语句之前,如下面的步骤4中所述。

    3. 必须将从属服务器与主服务器的复制二进制日志同步。如果以前没有在主数据库上运行二进制日志记录,请在从数据库上运行以下语句:

      mysqlS> CHANGE MASTER TO
      -> MASTER_LOG_FILE='',
      -> MASTER_LOG_POS=4;
      

      这指示从站从日志的起点开始读取主站的二进制日志。否则,也就是说,如果你使用的是从主加载数据备份见第22.6.8“实现故障转移与NDB群集复制”,以了解如何获得使用正确的值的信息,MASTER_LOG_FILE并且MASTER_LOG_POS在这种情况下。

    4. 最后,必须通过从复制从属服务器上的mysql客户端发出以下命令,指示从属服务器开始应用复制:

      mysqlS> START SLAVE;
      

      这也将启动复制数据从主机到从机的传输。

    也可以使用与下一节中介绍的过程类似的方式使用两个复制通道。“使用两个复制通道进行NDB群集复制”介绍了此方法与使用单个复制通道之间的区别。

    通过启用批处理更新,还可以提高群集复制性能。这可以通过slave_allow_batching在从属mysqld进程上设置系统变量来完成。通常,更新会在收到后立即应用。但是,使用批处理会导致以32 KB的批处理方式应用更新,这可能导致更高的吞吐量和更少的CPU使用率,尤其是在单个更新相对较小的情况下。

    注意

    从站批处理按每个时期进行;属于多个事务的更新可以作为同一批处理的一部分发送。

    到一个纪元结束时,所有未完成的更新都将应用,即使更新总数少于32 KB。

    批处理可以在运行时打开和关闭。要在运行时激活它,可以使用以下两个语句之一:

    SET GLOBAL slave_allow_batching = 1;
    SET GLOBAL slave_allow_batching = ON;
    

    如果特定批处理引起问题(例如,其效果似乎未正确复制的语句),则可以使用以下任一语句来停用从属批处理:

    SET GLOBAL slave_allow_batching = 0;
    SET GLOBAL slave_allow_batching = OFF;
    

    您可以通过一条适当的SHOW VARIABLES语句检查当前是否正在使用从属批处理,例如:

    mysql> SHOW VARIABLES LIKE 'slave%';
    +---------------------------	+-------	+
    | Variable_name	| Value	|
    +---------------------------	+-------	+
    | slave_allow_batching	| ON	|
    | slave_compressed_protocol	| OFF	|
    | slave_load_tmpdir	| /tmp	|
    | slave_net_timeout	| 3600	|
    | slave_skip_errors	| OFF	|
    | slave_transaction_retries	| 10	|
    +---------------------------	+-------	+
    6 rows in set (0.00 sec)