zoukankan      html  css  js  c++  java
  • (转)MySQL多源复制

    原文: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_statusG;
    *************************** 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已经停止了分别

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

  • 相关阅读:
    在知识爆炸的年代如何学习,避免成为PPT架构师
    同城双活的概念
    随笔《一个程序猿的生命周期》- 逆潮流而动的“叛逆者”
    连载《一个程序猿的生命周期》- 第1册《生存》篇全集 下载
    连载《一个程序猿的生命周期》- 44.感谢,我从事了IT相关的工作
    连载《一个程序猿的生命周期》- 43.我被这个时代淘汰了吗? ---2016年开篇,春节祝福!!!
    连载《一个程序猿的生命周期》- 42.新公司这一年,我都发生了哪些变化。--- 年底干货总结!!!
    连载《一个程序猿的生命周期》- 41.一个时代有一个时代人的使命
    【转载、推荐】不要自称是程序员,我十多年的 IT 职场总结
    [群友反馈] 程序猿身上的缺点
  • 原文地址:https://www.cnblogs.com/liujiacai/p/7692556.html
Copyright © 2011-2022 走看看