zoukankan      html  css  js  c++  java
  • 《MySQL 5.7 Replication新特性》分享之互动问题解答

     

    分享主题

    《MySQL 5.7 Replication新特性》

    嘉宾介绍

    宋利兵,MySQL研发工程师。2009年加入MySQL全球研发团队,从事MySQL复制相关功能的开发。

    主题介绍

    主要分享在MySQL 5.7中,Replication(复制)相关的一些新特性,比如多源复制、增强半同步复制、并行复制等。

    Agenda

    1. GTID复制

    2. 多线程并发复制

    3. 半同步复制

    4. 多源复制

    5. 其他特性

    这次的PPT、录音我也同时放到百度云盘里了,欢迎下载转存。百度云盘链接: http://pan.baidu.com/s/1gfNR7NH 密码: adqm

    互动问题解答

    由于篇幅有限,我们选择了10个比较有代表意义的问题进行解答。

    问1:多源复制下,支持master是5.6,slave是5.7吗?

    答:可以的

    【老叶补充】非常不建议跨大版本的MySQL Replication。

    问2:半同步复制设置N个slave应答,如果当前Slave小于N会怎样?

    答:取决于rpl_semi_sync_master_wait_no_slave的设置。

    - rpl_semi_sync_master_wait_no_slave = 0

       会立刻变成异步复制。

    - rpl_semi_sync_master_wait_no_slave = 1

       仍然等待应答,直到超时。

    问3:gtid 如果出现不支持的语句,怎么解决

    答:从应用中去掉不支持的语句/事务:

    例如:

    - CREATE TABLE ... SELECT

       可以该为:

       CREATE TABLE

       INSERT ... SELECT

    问4:基于GTID的复制,可以指定GTID复制的起始位置么,还是只能根据现有的信息?

    答:GTID复制就是为了摆脱对binlog文件名和位置的依赖。所以不能指定复制的起始位置,也完全没有必要指定。

    问5:对一个已经开启GTID的数据库再做一个从库,先把Master备份下来还原到新slave上去,直接可以同步了还是先需要做purge_gtid的操作再同步呢?

    答:需要设置gtid_purged。整个过程可以通过mysqldump完成。

    请参考手册:http://dev.mysql.com/doc/refman/5.7/en/replication-gtids-failover.html#replication-gtids-failover-copy

    问6:线上全是5.5的环境,有没有办法搭建5.5到5.7的复制?

    答:可以,但不能开启gtid功能。

    【老叶补充】非常不建议跨大版本的MySQL Replication,更何况是垮了2个大版本,最好是先进行升级。

    问7:并行复制logical_clock,如果不开启gtid是不是就不能并行了?

    答:不开启gtid,也能使用logical_clock并行复制。

    问8:在主从复制过程中,是主向从推数据还是从拉数据,如果这个传送的过程中,出现网络闪断,会不会造成数据包丢失,会执行校验重传嘛?

    答:Slave 的IO线程发起到Master的连接。

    然后master开始发送events,slave只是被动的接收。

    slave和master之间使用的是tcp 连接。tcp是可靠的连接。网络丢包等都是tcp层自动处理的。

    mysql不需要处理。

    如果slave长时间不能收到一个完整的Event,或者接收event时出错。slave 

    会进行相应的处理。

    如果slave认为,重新建立连接能解决问题。slave则自动的断开原来的连接,然后重新连接到master去。

    如果slave认为,这个错误无法自动解决,slave会停掉io线程,并报错。

     

     

    问9:设置了binlog_group_commit_sync_delay参数,在宕机的时候应该不会影响binglog文件安全吧?

    答:不影响

     

     

    问10:多源复制是只能在异步模式下使用么?因为半同步的状态是全局的,一个通道关闭会导致其它通道出错,有没有考虑将半同步状态改成每个channel的私有配置呢?

    答:只有一个通道可以开启seimsync,其他的都要使用异步通道。不光是Semisync,异步通道的状态也要改成每个channel的私有配置,都有考虑。

  • 相关阅读:
    ubuntu 制做samba
    《Programming WPF》翻译 第4章 前言
    《Programming WPF》翻译 第4章 3.绑定到数据列表
    《Programming WPF》翻译 第4章 4.数据源
    《Programming WPF》翻译 第5章 6.触发器
    《Programming WPF》翻译 第4章 2.数据绑定
    《Programming WPF》翻译 第4章 1.不使用数据绑定
    《Programming WPF》翻译 第5章 7.控件模板
    《Programming WPF》翻译 第5章 8.我们进行到哪里了?
    《Programming WPF》翻译 第5章 5.数据模板和样式
  • 原文地址:https://www.cnblogs.com/zengkefu/p/5720866.html
Copyright © 2011-2022 走看看