zoukankan      html  css  js  c++  java
  • MySQL5.7多源复制实践

    MySQL5.7开始新增多源复制功能,即允许一个salve同时复制多个主库的事务,slave会创建通往每个主库的管道。多源复制在应用来自多个源的事务的时候不会对有冲突的事务进行检测。

    配置实现

    主库支持基于GTID和binlog position的配置;从库存储master信息的仓库需要为table:

    #在配置文件中加入
    master-info-repository=TABLE relay-log-info-repository=TABLE
    #在线更改
    STOP SLAVE;
    SET GLOBAL master_info_repository = 'TABLE';
    SET GLOBAL relay_log_info_repository = 'TABLE';
    

    在从上添加对基于GTID的主库的通道

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

    开始复制

    #默认开启所有的复制通道
    START SLAVE thread_types;
    #指定复制通道开启
    START SLAVE thread_types FOR CHANNEL channel;

    停止复制

    #停止所有的复制通道
    STOP SLAVE thread_types;
    #指定复制通道停止
    STOP SLAVE thread_types FOR CHANNEL channel;

    重置多源复制的从库

    通过reset slave语句可以重置多源复制的从库,默认是重置所有的复制通道,也可以指定通道进行重置

    RESET SLAVE;
    RESET SLAVE FOR CHANNEL channel;

    多源复制监控

    通过联合查询performance schema中的复制表进行监控复制线程的状态

    select conn.CHANNEL_NAME,conn.SERVICE_STATE io_status,applier.SERVICE_STATE sql_status from performance_schema.replication_applier_status applier  join performance_schema.replication_connection_status conn on applier.CHANNEL_NAME=conn.CHANNEL_NAME;
    +--------------+-----------+------------+
    | CHANNEL_NAME | io_status | sql_status |
    +--------------+-----------+------------+
    | master_3300  | ON        | ON         |
    | master_3301  | ON        | ON         |
    +--------------+-----------+------------+
  • 相关阅读:
    mxnet笔记
    8.1.18示例:使用forName()的扩展
    8.1.17使用1.2版本的用户自定义类装载器
    8.1.16 使用1.1版本的用户自定义类装载器
    8.1.13 _quick 指令
    8.1.12直接引用
    8.1.11编译时常量解析
    8.1.10装载约束
    8.1.8 解析CONSTANT_String_info入口
    8.1.7 解析CONSTANT_interfaceMethodref_info入口
  • 原文地址:https://www.cnblogs.com/Bccd/p/6647204.html
Copyright © 2011-2022 走看看