• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 准备要复制的NDB群集

    准备要复制的NDB群集包括以下步骤:

    1. 检查所有MySQL服务器的版本兼容性(请参见“ NDB群集复制的一般要求”)。
    2. 使用以下两个SQL语句在具有适当特权的主群集上创建一个从帐户:

      mysqlM> CREATE USER 'slave_user'@'slave_host' 
      -> IDENTIFIED BY 'slave_password';
      
      mysqlM> GRANT REPLICATION SLAVE ON *.* 
      -> TO 'slave_user'@'slave_host';
      

      在上一条语句中,slave_user是从属帐户用户名,slave_host是复制从属的主机名或IP地址,并且slave_password是分配给该帐户的密码。

      例如,创建一个从用户帐户的名称myslave,从命名的主机登录系统rep-slave,并使用该密码53cr37,请使用以下CREATE USERGRANT语句:

      mysqlM> CREATE USER 'myslave'@'rep-slave' 
      -> IDENTIFIED BY '53cr37';
      
      mysqlM> GRANT REPLICATION SLAVE ON *.* 
      -> TO ''myslave'@'rep-slave'';
      

      出于安全原因,最好将唯一的用户帐户(不用于任何其他目的)用于复制从属帐户。

    3. 配置从属服务器以使用主服务器。使用MySQL Monitor,可以通过以下CHANGE MASTER TO语句完成此操作:

      mysqlS> CHANGE MASTER TO
      -> MASTER_HOST='master_host',
      -> MASTER_PORT=master_port,
      -> MASTER_USER='slave_user',
      -> MASTER_PASSWORD='slave_password';
      

      在上一条语句中,master_host是复制主服务器的主机名或IP地址,master_port是从服务器用于连接主服务器的端口,slave_user是在主服务器上为从服务器设置的用户名,以及slave_password为复制服务器设置的密码上一步中的该用户帐户。

      例如,要rep-master使用上一步中创建的复制从属帐户告诉从属从主机名为的MySQL服务器复制,请使用以下语句:

      mysqlS> CHANGE MASTER TO
      -> MASTER_HOST='rep-master',
      -> MASTER_PORT=3306,
      -> MASTER_USER='myslave',
      -> MASTER_PASSWORD='53cr37';
      

      有关可用于此语句的选项的完整列表,请参见“ CHANGE MASTER TO语句”。

      为了提供复制备份功能,还需要在开始复制过程之前向--ndb-connectstring从属my.cnf文件添加一个选项。有关详细信息,请参见“具有NDB群集复制功能的NDB群集备份”。

      有关可以my.cnf为复制从属设置的其他选项,请参见“复制和二进制日志记录选项和变量”。

    4. 如果主群集已在使用中,则可以创建主群集的备份并将其加载到从属群集上,以减少从属群集将自身与主机进行同步所需的时间。如果从服务器也正在运行NDB群集,则可以使用“使用NDB群集复制进行NDB群集备份”中所述的备份和还原过程来完成此操作。

      ndb-connectstring=management_host[:port]
      

      如果您不在复制从属服务器上使用NDB群集,则可以在复制主服务器上使用以下命令创建备份:

      shellM>mysqldump --master-data=1
      

      然后,通过将转储文件复制到从站,将结果数据转储导入到从站。之后,您可以使用mysql客户端将数据从转储文件导入到从数据库中,如下所示,其中dump_file是在主数据库上使用mysqldump生成的文件db_name的名称,并且是要复制的数据库的名称。:

      shellS>mysql -u root -p db_name < dump_file
      

      有关与mysqldump一起使用的选项的完整列表,请参见“mysqldump-数据库备份程序”。

      注意

      如果您以这种方式将数据复制到从属服务器,则应确保使用--skip-slave-start命令行上的选项启动从属服务器,或者将其包含skip-slave-start在从属服务器的my.cnf文件中,以防止其尝试连接至主服务器以开始复制。所有数据均已加载。数据加载完成后,请执行以下两节中概述的其他步骤。

    5. 确保使用行格式为每个充当复制主服务器的MySQL服务器配置唯一的服务器ID,并启用二进制日志记录。(请参见“复制格式”。)my.cnf启动主mysqld进程时,可以在主服务器的文件中或命令行上设置这些选项。有关后一种选项的信息,请参见“启动NDB群集复制(单复制通道)”。