本节提供使用MySQL集群管理器设置带有单个复制通道的MySQL集群复制的示例步骤。
在尝试以下步骤之前,建议您先阅读NDB集群复制熟悉MySQL集群复制的概念、需求、操作和限制。
创建并启动源集群:
MCM > create site——hosts=tonfisk msite;
——basedir=/usr/local/cluster- mgmt /cluster-7.3.2;
mcm> create cluster -P 7.3.2 -R \ ndb_mgmd@tonfisk,ndbmtd@tonfisk,ndbmtd@tonfisk,mysqld@tonfisk,mysqld@tonfisk,ndbapi@*,ndbapi@* \ source;
MCM > set portnumber:ndb_mgmd=4000 source;
MCM > set port:mysqld:51=3307 source;
MCM > set port:mysqld:50=3306 source;
mcm> set server_id:mysqld:50 = 100个源;
MCM > set log_bin:mysqld:50=binlog source;
mcm> set binlog_format:mysqld:50=ROW source;
MCM > set ndb_connectstring:mysqld:50=tonfisk:4000 source;
MCM>启动群集源;
创建并启动副本群集(我们从创建一个名为的新站点”ssite”只是为了复制集群;你也可以跳过它,把源集群和复制集群主机放在同一个站点下):
MCM>创建网站 - HOSTS = FLUNDRA SSITE;
——basedir=/usr/local/cluster- mgmt /cluster-7.3.2;
mcm> create cluster -P 7.3.2 -R \ ndb_mgmd@flundra,ndbmtd@flundra,ndbmtd@flundra,mysqld@flundra,mysqld@flundra,ndbapi@*,ndbapi@* \ replica;
set portnumber:ndb_mgmd=4000 replica;
MCM > set port:mysqld:50=3306 replica;
MCM > set port:mysqld:51=3307 replica;
MCM > set server_id:mysqld:50=101 replica;
MCM > set ndb_connectstring:mysqld:50=flundra:4000 replica;
MCM > set slave_skip_errors:mysqld=all replica;
MCM >启动集群副本
创建一个副本帐户(使用用户名”myreplica”和密码”mypw”),通过登录到源复制客户端(
mysql
),并发表以下声明:米
mysql米grant replication slave on *。* TO 'myreplica'@'flundra' -> IDENTIFIED BY 'mypw';
登录到副本集群客户端(
mysql
),并发表以下声明:年代
mysql年代>更改大师到 - > master_host ='tonfisk', - > master_port = 3306, - > master_user ='myreplica', - > master_password ='mypw';
使用复制集群客户端发出以下语句来启动复制:
mysql年代>开始的奴隶;
上面的示例假设源集群和副本集群几乎是同时创建的,在复制启动之前两者都没有数据。如果在创建salve集群时,源集群已经运行并且有数据,在执行上述步骤3后,按照以下步骤将数据从源集群转移到复制集群,并准备复制集群进行复制:
使用
备份集群
MySQL集群管理器命令:MCM >备份集群源;
请注意仅有的
NDB
表由命令备份;使用其他MySQL存储引擎的表将被忽略。通过列出源集群的所有备份来查找刚才所做备份的备份ID:
MCM >列表备份源;+----------+--------+---------+---------------------+---------+ | BackupId | NodeId |评论| |主机时间戳 | +----------+--------+---------+---------------------+---------+ | 1 | 1 | tonfisk | 2014-10-17 20:03:23 | | | 1 | 2 | tonfisk | 2014-10-17 20:03:23 | | | 2 | 1 | tonfisk | 2014-10-17 20:09:00 | | | 2 | 2 | tonfisk | 2014-10-17 20:09:00||+----------+--------+---------+---------------------+---------+
从输出中可以看到,您创建的最新备份具有备份ID”2”,节点存在备份数据”1”和”2”.
使用备份ID和相关节点ID,标识刚刚创建的备份文件
/ / mcm_data /集群
在源集群的安装目录中(在本例中,在cluster_name
/node_id
/数据/备份/备份 -backup_id
// mcm_data /集群/ / 1 /数据/备份/ BACKUP-2来源
和/ mcm_data /集群/ / 2 /数据/备份/ BACKUP-2来源
),并将它们复制到复制集群的等效位置(在本例中,/ mcm_data /集群/ / 1 /数据/备份/ BACKUP-2复制品
和/ mcm_data /集群/ / 2 /数据/备份/ BACKUP-2复制品
在复制集群的安装目录下)。复制完成后,使用以下命令检查备份现在对复制集群可用:MCM >列表备份副本;+----------+--------+---------+---------------------+---------+ | BackupId | NodeId |评论| |主机时间戳 | +----------+--------+---------+---------------------+---------+ | 2 | 1 | flundra | 2014-10-17 21:19:00 | | | 2 | 2 | flundra | 2014-10-17 21:19:00 | | +----------+--------+---------+---------------------+---------+
将备份的数据恢复到复制集群(注意,您需要一个未使用的
ndbapi
槽的恢复集群
命令工作):MCM>恢复群集 - Backupid = 2副本;
在源集群客户端上,使用以下命令识别正确的二进制日志文件和启动复制的位置:
mysql米> show master status \ g;*************************** 1。行 *************************** 文件:binlog.000017位置:2857 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set:
在复制集群客户端上,向复制集群提供源集群的信息,包括二进制日志文件名(带有
MASTER_LOG_FILE
选项)和位置(与MASTER_LOG_POS
选项)你刚刚在上面的步骤5中发现:mysql年代>修改MASTER为-> MASTER_HOST='tonfisk', -> MASTER_PORT=3306, -> MASTER_USER='myreplica', -> MASTER_PASSWORD='mypw', -> MASTER_LOG_FILE='binlog '。000017年,> MASTER_LOG_POS = 2857;
使用复制集群客户端发出以下语句来启动复制:
mysql年代>开始的奴隶;
作为这些步骤的替代方法,您也可以按照中描述的步骤操作NDB集群备份与NDB集群复制将数据从源复制到副本,并指定启动复制的二进制日志文件和位置。