准备用于复制的NDB集群包括以下步骤:
检查所有MySQL服务器的版本兼容性(参见第21.6.2节,“NDB集群复制的一般要求”)。
使用以下两条SQL语句在源集群上创建具有适当权限的复制帐户:
mysql.S.创建用户replica_user.“@”replica_host' -> identified by 'replica_password”;mysql.S.grant replication slave on *。* ->到'replica_user.“@”replica_host”;
在前一个陈述中,
replica_user.
是复制帐户的用户名,replica_host
副本的主机名或IP地址,以及replica_password
分配给此帐户的密码。例如,创建具有该名称的复制用户帐户
myreplica
,从名为的主机登录replica-host
,并使用密码53 cr37
,使用以下方法创建用户
和授予
陈述:mysql.S.>创建用户'myreplica'@'replica-host' - >由'53cr37'标识;mysql.S.grant replication slave on *。* ->到'myreplica“@”replica-host'
出于安全原因,最好为复制帐户使用唯一的用户帐户(不用于任何其他目的)。
设置副本以使用源。使用mysql.客户端,这可以通过以下方式完成
改变主
声明:mysql.R.>修改master为-> master_host ='source_host”,——> MASTER_PORT =source_port., - > master_user ='replica_user.”,——> MASTER_PASSWORD = 'replica_password”;
在前一个陈述中,
source_host
为复制源的主机名或IP地址,source_port.
是副本连接到源时使用的端口,replica_user.
是否为源上的副本设置了用户名replica_password
是在上一步中为该用户帐户设置的密码。例如,要告诉副本,请使用主机名的MySQL服务器
rep-source
对于在上一步中创建的复制帐户,使用以下语句:mysql.R.在>中修改MASTER到-> MASTER_HOST='rep-source', -> MASTER_PORT=3306, -> MASTER_USER='myreplica', -> MASTER_PASSWORD='53cr37';
有关可与此语句一起使用的完整选项列表,请参阅第13.4.2.1节,“CHANGE MASTER TO Statement”。
要提供复制备份能力,还需要添加
——ndb-connectstring
选项的副本my.cnf
在开始复制过程之前文件。看第21.6.9节“NDB群集备份与NDB群集复制”的细节。对于可以设置的其他选项
my.cnf
对于副本,看第16.1.6节“复制和二进制记录选项和变量”。如果源集群已经在使用中,则可以创建源的备份并将其加载到副本中,以减少副本与源同步所需的时间。如果副本也在运行NDB Cluster,则可以使用中描述的备份和恢复过程来完成第21.6.9节“NDB群集备份与NDB群集复制”。
ndb-connectstring =management_host[:港口]
如果你是不在副本上使用NDB Cluster,你可以使用这个命令在源上创建一个备份:
壳S.>, mysqldump——主数据= 1
然后通过将转储文件复制到该副本,将生成的数据转储导入到该副本。在此之后,您可以使用mysql.客户端将DumpFile导入数据到副本数据库,如此所示,其中
dump_file
生成的文件的名称是否使用,mysqldump在来源,和db_name
要复制的数据库的名称:壳R.> mysql -u root -pdb_name<dump_file
获取要使用的选项的完整列表,mysqldump, 看第4.5.4节," mysqldump -一个数据库备份程序"。
笔记如果以这种方式将数据复制到副本,则应确保该副本以
——skip-slave-start
选项,否则包括skip-slave-start
副本的my.cnf
文件以使其无法尝试连接到源,以便在加载所有数据之前开始复制。数据加载已完成后,请按照下两个部分中概述的附加步骤操作。确保使用作为复制源的每个MySQL服务器分配唯一的服务器ID,并使用基于行的格式启用二进制日志记录。(看第16.2.1节,“复制格式”)。此外,我们建议启用
slave_allow_batching.
系统变量,并可能增加与——ndb-batch-size
和--ndb-blob-write-batch-bytes
选项。所有这些选项都可以在源服务器中设置my.cnf
在启动源时,文件或命令行上的文件mysqld.的过程。看第21.6.6节“启动NDB群集复制(单复制频道)”, 想要查询更多的信息。