原文:https://dev.mysql.com/doc/refman/5.7/en/replication-multi-source.html

MySQL多源复制概述

MySQL多源复制使复制从接受交易,同时从多个数据源。多源复制可以用来支持多个服务器,一个服务器,合并表碎片,并整合来自多个服务器,一个服务器的数据。多源复制不实施任何冲突检测和解决在交易,这些任务留给应用程序如果需要。在多源复制拓扑,奴隶创造每个主人应该从接收事务复制通道。看到第16.2.3,“复制通道”。以下各节描述如何建立多源复制。

多源复制教程

本节提供的教程如何配置多源复制主人和奴隶,以及如何启动、停止、复位多源的奴隶。

16.1.4.2.1多源复制配置

本节说明了如何配置一个多源复制拓扑,并提供有关如何配置主人和奴隶。这种拓扑结构需要至少两个主人和一个奴隶的配置。

在多源复制拓扑的主人可以配置全局事务标识符(gtid)为基础的复制,或二进制日志位置为基础的复制。看到第16.1.3.2,“设置复制使用gtids”如何使用gtid通过复制配置主。看到第16.1.2.1,“设置复制主配置”如何配置主使用基于位置的复制文件。

在多源复制拓扑的奴隶要求TABLE基础信息库。多源复制不兼容文件基础信息库。知识库使用的类型mysqld可以在启动配置或动态。

配置在启动复制奴隶使用库的类型,开始mysqld使用下列选项:

--master-info-repository=TABLE --relay-log-info-repository=TABLE

修改现有的复制的奴隶是用FILE库的使用库,将现有的复制库动态运行下面的命令:

STOP SLAVE;
SET GLOBAL master_info_repository = 'TABLE';
SET GLOBAL relay_log_info_repository = 'TABLE';
16.1.4.2.2添加gtid基于多源复制奴隶主

本节假设您已经启用gtid基础交易大师使用gtid_mode=ON,使复制的用户,并保证使用的奴隶基于复制的库。使用CHANGE MASTER TO声明中添加一个新的主用通道通道channel条款.在复制通道的更多信息,参见第16.2.3,“复制通道”

例如,添加主机名的新主人master1使用端口3451一个通道称为master-1

CHANGE MASTER TO MASTER_HOST='master1', MASTER_USER='rpl', MASTER_PORT=3451, MASTER_PASSWORD='', \
MASTER_AUTO_POSITION = 1 FOR CHANNEL 'master-1';

多源复制与自动定位兼容。看到第13.4.2.1,“变化掌握语法”更多信息

每个额外的主要添加一个通道重复这一过程,改变主机名、端口和通道适当。

16.1.4.2.3添加二进制日志基于多源复制奴隶主

本节假设你已经启用了二进制日志的使用--log-bin,使复制用户,指出当前的二进制日志中的位置,并确保使用的奴隶基于复制的库。你需要知道当前MASTER_LOG_FILEmaster_log_position。使用CHANGE MASTER TO声明中添加一个新的主人通过指定一个通道通道channel条款.例如,添加主机名的新主人master1使用端口3451一个通道称为master-1

CHANGE MASTER TO MASTER_HOST='master1', MASTER_USER='rpl', MASTER_PORT=3451, MASTER_PASSWORD='' \
MASTER_LOG_FILE='master1-bin.000006', MASTER_LOG_POS=628 FOR CHANNEL 'master-1';

每个额外的主要添加一个通道重复这一过程,改变主机名、端口和通道适当。

16.1.4.2.4起始多源复制的奴隶

一旦你添加所有你想要使用复制大师的渠道,使用START SLAVE thread_types语句开始复制。当您启用了多渠道的一个奴隶,你可以选择开始的所有渠道,或选择一个特定的信道开始。

  • 开始所有的当前配置的复制通道:

    START SLAVE thread_types;
  • 开始只是一个命名的通道,使用FOR CHANNEL channel条款:

    START SLAVE thread_types FOR CHANNEL channel;

使用thread_types选择你想要的特定线程的上述声明开始的奴隶。看到第13.4.2.6,“开始从语法”更多信息

16.1.4.2.5停止多源复制的奴隶

这个STOP SLAVE语句可用于阻止多源复制从。默认情况下,如果你使用停止奴隶声明一个多源复制从所有渠道都停止了。或者,使用FOR CHANNEL channel条款只是一个特定的通道停止。

  • 停止所有当前配置的复制通道:

    STOP SLAVE thread_types;
  • 止命名通道,使用FOR CHANNEL channel条款:

    STOP SLAVE thread_types FOR CHANNEL channel;

使用thread_types选择你想要的特定线程的上述声明对奴隶停止。看到第13.4.2.7“停止从语法”更多信息

16.1.4.2.6复位多源复制的奴隶

这个RESET SLAVE语句可用于重置多源复制从。默认情况下,如果你使用复位的奴隶声明一个多源复制从各种渠道复位。或者,使用FOR CHANNEL channel条款重置只是一个特定的通道。

  • 重置所有的当前配置的复制通道:

    RESET SLAVE;
  • 重置只命名通道,使用FOR CHANNEL channel条款:

    RESET SLAVE FOR CHANNEL channel;

看到第13.4.2.4,“重置从语法”更多信息

多源监测复制

监控状态复制通道下列选项的存在:

  • 使用复制性能模式表。这些表的第一列Channel_Name。这使您可以编写基于复杂查询channel_name作为一个关键的。看到第25.11.11,绩效模式复制表”

  • 使用SHOW SLAVE STATUS FOR CHANNEL channel。默认情况下,如果通道channel条款是不能用的,这说明所有通道的奴隶地位每通道一行。标识符channel_name作为一个结果集中的列。如果一个FOR CHANNEL channel设置条款,结果表明只有指定复制渠道现状。

笔记

这个SHOW VARIABLES语句不多复制通道。这是可以通过这些变量的信息已经迁移到复制性能表。使用SHOW VARIABLES在一个多通道的拓扑表显示只有默认的渠道现状。

16.1.4.3.1监测使用性能模式表通道

本节说明如何使用复制性能监控的渠道模式表。你可以选择监控所有渠道,或一个子集的现有渠道。

监视所有通道的连接状态:

mysql> SELECT * FROM replication_connection_status\G;
*************************** 1. row ***************************
CHANNEL_NAME: master1
GROUP_NAME:
SOURCE_UUID: 046e41f8-a223-11e4-a975-0811960cc264
THREAD_ID: 24
SERVICE_STATE: ON
COUNT_RECEIVED_HEARTBEATS: 0
LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00
RECEIVED_TRANSACTION_SET: 046e41f8-a223-11e4-a975-0811960cc264:4-37
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
*************************** 2. row ***************************
CHANNEL_NAME: master2
GROUP_NAME:
SOURCE_UUID: 7475e474-a223-11e4-a978-0811960cc264
THREAD_ID: 26
SERVICE_STATE: ON
COUNT_RECEIVED_HEARTBEATS: 0
LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00
RECEIVED_TRANSACTION_SET: 7475e474-a223-11e4-a978-0811960cc264:4-6
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
2 rows in set (0.00 sec)

在上面的输出中有两通道启用,和所CHANNEL_NAME它们被称为Master1master2

增加了CHANNEL_NAME场允许你为一个特定的信道的性能模式表查询。监控指定通道的连接状态,使用WHERE CHANNEL_NAME=channel条款:

mysql> SELECT * FROM replication_connection_status WHERE CHANNEL_NAME='master1'\G
*************************** 1. row ***************************
CHANNEL_NAME: master1
GROUP_NAME:
SOURCE_UUID: 046e41f8-a223-11e4-a975-0811960cc264
THREAD_ID: 24
SERVICE_STATE: ON
COUNT_RECEIVED_HEARTBEATS: 0
LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00
RECEIVED_TRANSACTION_SET: 046e41f8-a223-11e4-a975-0811960cc264:4-37
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
1 row in set (0.00 sec)

同样,该WHERE CHANNEL_NAME=channel条款可以用来监视其他复制性能模式表为一个特定的通道。有关更多信息,参见第25.11.11,绩效模式复制表”

多源复制错误消息

错误代码和消息提供关于多源复制拓扑中遇到错误信息。这些错误代码和消息只时发出的多源复制启用,并提供所产生的误差通道的相关信息。例如:

从已经运行和从已停止已被替换复制线程(S)通道channel_name已经运行和复制线程(S)通道channel_name已经停止了分别

服务器日志消息也已经改变,表明通道的日志消息有关。这使得更容易调试和跟踪。

(转)MySQL多源复制的更多相关文章

  1. MySQL系列详解十:MySQL多源复制演示-技术流ken

    前言 多源复制即多主一从结构,多个主服务器端的数据都会同步到后端一个从服务器上面.至于为什么要做多源复制下面的总结很到位. 1.灾备作用:将各个库汇总在一起,就算是其他库都挂了(整个机房都无法连接了) ...

  2. MySQL 多源复制(Mulit-Source Replication)

    MySQL多源复制方案        看复制源Master_1的同步状态:SHOW SLAVE STATUS FOR CHANNEL 'Master_1'\G 查看复制源Master_2的同步状态:S ...

  3. MySQL多源复制

    MySQL多源复制 1. 配置多源复制 1.1 配置环境如下 1.2 从库的重要参数配置 1.3 在Master上导出需要同步的数据库 1.4 在master上创建复制账号 1.5 备份数据导入 1. ...

  4. 基于Docker搭建MySQL多源复制环境

    MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等. 多源复制:多源复制加入了一 ...

  5. MySQL多源复制【转】

    什么是多源复制? 首先,我们需要清楚 multi-master 与multi-source 复制不是一样的. Multi-Master 复制通常是环形复制, 你可以在任意主机上将数据复制给其他主机. ...

  6. MySQL多源复制(八)

    一.什么是多源复制 MySQL 5.7发布后,在复制方面有了很大的改进和提升.比如开始支持多源复制(multi-source)以及真正的支持多线程复制了.多源复制可以使用基于二进制日志的复制或者基于事 ...

  7. mysql多源复制安装

    多源复制的意思是多主一从. 多源复制的前提是必须要开启GTID模式. master1 :192.168.1.110 master2 :192.168.1.111 slave :192.168.1.15 ...

  8. MySQL 5.7.9多源复制报错修复

    版本:5.7.9 用5.7.9的版本搭建MySQL多源复制测试环境 开发说复制出现问题,上去看了一下: mysql> show slave status\G******************* ...

  9. MySQL 5.7 多源复制实践

    多源复制使用场景 数据分析部门会需要各个业务部门的部分数据做数据分析,这个时候就可以用到多源复制把各个主数据库的数据复制到统一的数据库中. 在从服务器进行数据汇总,如果我们的主服务器进行了分库分表的操 ...

随机推荐

  1. 【转】java遍历实体类的属性和数据类型以及属性值

    和同学接了个外包的活,由于项目中很多地方要用到poi导出excel,而每次导出都要写很多相同的代码,因为poi的cell.setCellValue();每次设置的都是不同实体bean的属性值,导致代码 ...

  2. windows下 git+tortoiseGit的使用【转】

    一定要自己写出来才能牢记,所以我来写一下 git确实比svn好用的多了,最起码只有一个文件夹用来标记版本信息比svn所有文件夹下都要放一个文件夹来标记版本信息先进多了,不然你不想要版本管理这些文件的时 ...

  3. GameTOOL

    1.游戏的资源网站 http://www.gameres.com/yanfa_1.html

  4. Quartus II 软件生成FFT、NCO、FIR等IP核时卡住不动的解决办法

    据网友表示,遇到这个问题时,在任务管理器中手动关闭quartus_map进程就可以了,由于我的电脑最近一直没有出问题,因此也无法验证.欢迎大家针对这个问题讨论,提出肯定.否定的说法. 另外,很多人表示 ...

  5. Linq编译带来的诡异错误

    今天遇到一个很诡异的问题,初步猜测是Linq编译以及编译器自动优化带来的原因,对IL不是很熟悉,所以懒得去追了. 贴个代码出来,希望能抛砖引玉,得到正解. 注意到我用原始的foreach语句代替了li ...

  6. java程序无法启动:Unsupported major.minor version 51.0

    今天在sae上部署了一个项目,结果总是出现503错误:service unavailable,然后jvm出现了一大串错误日志,如下 JAVA_SAE_Fatal_error: Failed start ...

  7. Java反射API研究(4)——Class中的重要对象

    一.Constructor与Method的父类:Executable Executable表示一个可执行类,构造方法与普通方法都是Executable AnnotatedType[] getAnnot ...

  8. Android-XML与JSON的理解-JSON的数据格式

    据我了解,在多年以前浏览器客户端和服务器它们的通讯数据交互格式是XML, 使用XML来规定数据格式可读性确实非常强,XML的魅力确实很大,也很成熟,但是也有不足之处,就是在网络传输的时候对流量要求特别 ...

  9. nmon在secureCRT下显示乱码问题

    # 背景 下载安装了nmon,结果发现显示有问题,如下 # 解决 猜测应该是字体编码问题,查阅了解后,是因为CRT设置问题,需要修改下配置,(之前试用xshell比较棒,但公司禁止试用),如下修改 然 ...

  10. Android应用安全解决方案

    Apk安全解决方案 背景 公司为政府做的App开发完了,需要上一些手段保证安全.这样客户才放心嘛. 防止第三方反编译篡改应用,防止数据隐私泄露,防止二次打包欺骗用户. 目录 Apk安全解决方案 背景 ...