原文: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. UILabel 字体下方加下划线

        UILabel *knowKankan = [[UILabel alloc] initWithFrame:CGRectMake(0, MAINHEIGHT - 78 , MAINWIDTH, ...

  2. 修改VS中的附加依赖项的继承值

    工程用不到的库,想去都去不掉,一直链接错误... 解决方法:打开vs的“属性管理器”窗口.通过这个窗口就可以对里面的继承值进行编辑了 另,“属性管理器”这个窗口,一般在“其他窗口”选项里(至少VS20 ...

  3. DELPHI如何获取某目录下的所有文件名?

    //=====================================================================// 函数名称: FindPathFiles// 功能描述 ...

  4. WINSOCK网络函数

    1. 头文件及库文件 头文件:WINSOCK2.H 库:WS2_32.LIB库 如果是在WINCE中,不支持SOCK2,所以: 头文件:WINSOCK.H 库:WSOCK32.LIB 如果从MSWSO ...

  5. Provider 模式

    Provider 模式:为一个API进行定义和实现的分离. 常见场景:DBPrider切换,第3方集成API切换 以发邮件为例: Email Provider Config: public abstr ...

  6. logback 热修改

    <configuration scan="true" scanPeriod="60 seconds" debug="false"> ...

  7. ------------------java collection 集合学习 ----小白学习笔记,,有错,请指出谢谢

    <!doctype html>java对象集合学习记录 figure:first-child { margin-top: -20px; } #write ol, #write ul { p ...

  8. [转]RTH试用手记之“额外功能”

    年初,罗德与施瓦茨公司(Rohde & Schwarz)推出了第一款的手持示波器,从指标上看,该示波器打破了传统手持器功能简单.指标水平低.结构粗糙的印象,取而代之达到了主流台式数字示波器的性 ...

  9. 在TFS 2013的迭代视图中修改工作项数目限制

    当TFS迭代中的工作项数目超过500时,在TFS的网页(Web Access)显示中就会出现红色警告提示"积压工作(backlog)中的项数超出配置的限制500.当前总数为529-.&quo ...

  10. linux 添加用户到sudo中

    步骤 1. 先切到root用户 2. 执行visudo,其实就是修改/etc/sudoers 3. 添加用户,规则如下: youuser ALL=(ALL) ALL %youuser ALL=(ALL ...