准备要复制的NDB群集
准备要复制的NDB群集包括以下步骤:
- 检查所有MySQL服务器的版本兼容性(请参见“ NDB群集复制的一般要求”)。
使用以下两个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 USER
和GRANT
语句:mysqlM>
CREATE USER 'myslave'@'rep-slave' ->IDENTIFIED BY '53cr37'; mysqlM>GRANT REPLICATION SLAVE ON *.* ->TO ''myslave'@'rep-slave '';出于安全原因,最好将唯一的用户帐户(不用于任何其他目的)用于复制从属帐户。
配置从属服务器以使用主服务器。使用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
为复制从属设置的其他选项,请参见“复制和二进制日志记录选项和变量”。如果主群集已在使用中,则可以创建主群集的备份并将其加载到从属群集上,以减少从属群集将自身与主机进行同步所需的时间。如果从服务器也正在运行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
文件中,以防止其尝试连接至主服务器以开始复制。所有数据均已加载。数据加载完成后,请执行以下两节中概述的其他步骤。- 确保使用行格式为每个充当复制主服务器的MySQL服务器配置唯一的服务器ID,并启用二进制日志记录。(请参见“复制格式”。)
my.cnf
启动主mysqld进程时,可以在主服务器的文件中或命令行上设置这些选项。有关后一种选项的信息,请参见“启动NDB群集复制(单复制通道)”。