原文: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. Spring配置bean的方法(工厂方法和Factorybean)

    通过工厂方法配置bean 通过调用静态工厂方法创建bean 通过静态工厂方法创建bean是将对象创建的过程封装到静态方法中.当客户端需要对象时,只需要简单地调用静态方法,而不关心创建对象的细节. 要声 ...

  2. 深入解析String#intern

    转自:https://tech.meituan.com/in_depth_understanding_string_intern.html 深入解析String#intern john_yang ·2 ...

  3. POJ2195 Going Home (最小费最大流||二分图最大权匹配) 2017-02-12 12:14 131人阅读 评论(0) 收藏

    Going Home Description On a grid map there are n little men and n houses. In each unit time, every l ...

  4. Spring 之 AOP

    面向方面的编程,即 AOP,是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化.AOP 的核心构造是方面, 它将那些影响多个类的行为封装到可重用的模块 ...

  5. 咏南中间件更新日志--将数据库配置独立成DBCONFIG.EXE

    咏南中间件更新日志--将数据库配置独立成DBCONFIG.EXE.

  6. Linux服务器使用XShell上传下载文件

    在学习Linux过程中,我们常常需要将本地文件上传到Linux主机上,这里简单记录下使用Xsheel工具进行文件传输 1:首先连接上一台Linux主机 2:输入rz命令,看是否已经安装了lrzsz,如 ...

  7. javascript做的一个根据table中某个td的值为日期时的倒计时

    JavaScript代码: <script> window.onload = window.onload = function () { getTdValue(); } //根据传过来的天 ...

  8. WPF显示Gif动画

    WPF的Image控件不能很好的支持.gif文件.解决办法有如下2种. 1使用MediaElement <MediaElement Source="file://D:\anim.gif ...

  9. ASP Session的功能的缺陷(进程外的Session)

    目前ASP的开发人员都正在使用Session这一强大的功能,但是在他们使用的过程中却发现了ASP Session有以下缺陷: 进程依赖性:ASP Session状态存于IIS的进程中,也就是ineti ...

  10. ie兼容placeholder效果

    转载:http://www.jb51.net/article/56244.htm placeholder是HTML5<input>的属性之一,在不同的浏览器( 支持HTML5的现代浏览器 ...