《MySQL 5.7 Replication新特性》分享之互动问题解答
分享主题
《MySQL 5.7 Replication新特性》
嘉宾介绍
宋利兵,MySQL研发工程师。2009年加入MySQL全球研发团队,从事MySQL复制相关功能的开发。
主题介绍
主要分享在MySQL 5.7中,Replication(复制)相关的一些新特性,比如多源复制、增强半同步复制、并行复制等。
Agenda
- GTID复制 
- 多线程并发复制 
- 半同步复制 
- 多源复制 
- 其他特性 
这次的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的私有配置,都有考虑。
《MySQL 5.7 Replication新特性》分享之互动问题解答的更多相关文章
- 《转》MySQL 5.7版本新特性连载
		MySQL 5.7版本新特性连载(一) 本文将和大家一起分享下5.7的新特性,不过我们要先从即将被删除的特性以及建议不再使用的特性说起.根据这些情况,我们在新版本及以后的版本中,应该不再使用,避免未来 ... 
- MySQL 5.7 GA 新特性
		转载自: http://www.chinaxing.org/articles/Database/2015/10/23/2015-10-22-mysql-5.7.html sys-schema http ... 
- MySQL 8.0 InnoDB新特性
		MySQL 8.0 InnoDB新特性 1.数据字典全部采用InnoDB引擎存储,支持DDL原子性.crash safe,metadata管理更完善 2.快速在线加新列(腾讯互娱DBA团队贡献) 3. ... 
- 【MySQL】MariaDB10.2新特性--Flashback
		MariaDB10.2新特性--Flashback Flashback可以回滚到旧的数据,用于解决用户误删除数据的问题. 实战例子 MariaDB [zsd]> select * from te ... 
- 【mysql】mysq8.0新特性
		一.MySQL8.0简介 mysql8.0现在已经发布,2016-09-12第一个DM(development milestone)版本8.0.0发布.新的版本带来很多新功能和新特性,对性能也得到 ... 
- 【MySQL】MariaDB10.3新特性--闪回查询
		MariaDB10.3新特性--闪回查询 System-Versioned表特性的引入,可以对表进行闪回.完成类似于Oracle的闪回查询. 修改已有表为System-Versioned MariaD ... 
- es6新特性分享
		1.字符串查找es5使用是indexOf() 返回字符第一次出现的位置int值es6新增了3个方法:includes()/startsWith()/endWith()返回bool值includes = ... 
- RocketMQ4.4.0新特性分享
		rocketmq1.架构 MQ历史 由数据结构队列发展而来 MQ使用场景 异步处理 解耦 削峰填谷 数据同步2.队列3.使用 生产 同步(sync) 默认重试2次总共3次 默认等待超时时间为3s 异步 ... 
- com.mysql.cj.jdbc.Driver 新特性jdbc.url连接供参考
		com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6及以上版本中的参数详解: jdbc.url=jdbc:mysql://localhost:3306/t ... 
随机推荐
- [Swift通天遁地]七、数据与安全-(14)使用单元测试进行邮箱格式的验证
			★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ... 
- 3最短路的几种解法 ------例题< 最短路 >
			点击进入例题 最短路 我知道的有三种方法 1 : 深搜 每次 每次有更小的路径时 就更新 , 2 : Dijkstra 3 : floyd 前两种 是 单源 最短路径 ... 
- Salvation  -- ---广搜 + 限定方向 ,
			这个欣求 , 在迷宫里密室了方向 , 走过了一个地方 不做标记 还一个劲 , 找不到媳妇不亏 . 这个题 我跳了两个坑 , 1 : 习惯性添加标记走过的 位置 ,导致所有的位置都能 走过一遍 , ... 
- 吝啬的国度  ---用vector  来构图
			根据题目可以看出来 有n 个城市 只有 n-1 条路线 那么 就可以确定这个图中 不存在 圆 所以从一个点到另一个点 只有一条唯一的路 所以从一个节点到另一个节点 那么 这个节点只有一个唯 ... 
- 卸载Mysql connect 6.9.9
			我们在卸载MySQL的时候,会发现有一个名为“Connector Net X.X.X”(如:Connector Net 6.9.9)软件总是卸载不成功,下面我们来看看解决方法:1. 在C盘的目录下,有 ... 
- [转]在 Linux 下使用 RAID
			转自:http://www.linuxidc.com/Linux/2015-08/122191.htm RAID 的意思是廉价磁盘冗余阵列(Redundant Array of Inexpensive ... 
- [转]Linux下paste命令详解
			转自:http://blog.csdn.net/andy572633/article/details/7214126 paste单词意思是粘贴.该命令主要用来将多个文件的内容合并,与cut命令完成的功 ... 
- postgres外部表如何修改源码适配pg升级
			postgres中外部表的应用如下: 但是许多在github上的fdw开源代码都是基于9.3以及9.4版本开发,原作者没有随着pg的版本升级而将外部表扩展升级,那只能靠自己去手动修改源码来让这些扩展能 ... 
- 多线程-实现Runnable接口
			当一个任务或者函数多个线程同时调用时仅仅继承Thread是不行的.需要实现Runnable接口. 好处: 1.将线程的任务从线程的子类中分离出来,进行了单独的封装. 按照面向对象的思想将任务封装成对象 ... 
- 2016.01.07 DOM笔记(二) DOM节点
			node节点属性 nodeName属性 oneBox= document.getElementsById('box');var s = oneBox.nodeName; //nodeName与tag ... 
