在slave上有两个线程:io线程和sql线程
io线程接收master的二进制日志信息并写入到本地的relay log中;sql线程执行本地relay log中的信息。
io线程读取到的二进制日志当前位置信息写在master.info中;sql线程读取到的当前relay log位置信息写在realy-log.info文件中

存在的问题就是相应的内容写入文件后,并不能都实时刷新到磁盘上。当mysql实例crash后,对应的位置信息就可能不一致。
在5.6中可以set sync_master_info = 1和 sync_relay_log_info =1来确保每个事务结束后对应的信息被写入磁盘。
但是复制信息是在事务提交后才写的,如果在事务提交后slave发生了crash,而realy-log.info信息还没有被更新,实例重启后就可能会导致事务执行两次,就可能会发生复制错误。当然也可能对复制没有影响。

5.6中,引进了两个参数relay_log_info_repository、master_info_repository
设置relay_log_info_repository=table,就会创建表mysql.slave_relay_log_info,并将realy-log.info文件中的信息写入到该表中。
设置master_info_repository=table,就会创建表mysql.slave_master_info,并将master.info文件中的信息写入该表。
这个方法很简单,就是把SQL线程的事务和更新mysql.slave_relay_log_info的语句看成一个事务处理,这样就会一直同步的.

虽然解决了sql线程的问题,但是io线程的问题还没有解决,因为更新slave_master_info表跟事务没有关系。那么如何让msyql server更新该表呢?
于是又引入了参数sync_master_info,5.6.6之后默认值是10000。

当master_info_repository=file,sync_master_info=n的值大于0,表示n个events之后刷新到磁盘;如果n值为0,表示如何刷新到磁盘取决于操作系统。
当master_info_repository=table,sync_master_info=n的值大于0,表示n个events之后更新表mysql.slave_master_info;如果n值为0,表示不更新mysql.slave_master_info。

还有更优雅的方法,使用参数relay_log_recovery = ON,但是设置这个参数生效,需要服务器重启。
开启该参数,重启server后,io线程抛弃现有的IOthread的偏移量,从slave_relay_log_info表中获取当前的IO线程偏移量,这样你就不需要以为crash-safe存储IO线程的信息到表里。也就是说master_info_repository = TABLE不是必须的。

最后注意,relay_log_info_repository = TABLE和 sync_relay_log_info是 没有关联的。所以你可以放心的从配置文件中移除sync_relay_log_info。

MySQL 5.6新特性 -- crash-safe replication的更多相关文章

  1. InnoSQL HA Suite的实现原理与配置说明 InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync replicaiton)的功能 MySQL 5.6支持了crash safe功能

    InnoSQL HA Suite的实现原理与配置说明  InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync repl ...

  2. [转帖 ]MySQL 5.7 新特性 JSON

    MySQL 5.7 新特性 JSON 的创建,插入,查询,更新 作者: 我不是鱼 (2016-08-31 16:13)分类: MySQL   标签: MySQL JSON MySQL JSON 应用 ...

  3. Mysql 8.0 新特性测试

    Mysql 8.0 新特性测试 Role MySQL8.0版本添加了role特性,role是一种逻辑概念是权限的集合,可以将一个或以上的权限赋予给role,再将role赋给user.Oracle,Po ...

  4. MySQL 8.0 新特性梳理汇总

    一 历史版本发布回顾 从上图可以看出,基本遵循 5+3+3 模式 5---GA发布后,5年 就停止通用常规的更新了(功能不再更新了): 3---企业版的,+3年功能不再更新了: 3 ---完全停止更新 ...

  5. Mysql 5.6 新特性

    随笔,真的随笔,以后理解得更深了再修改.   Index Condition Pushdown 更多的让存储引擎去处理Where语句中的条款,避免返回无关字段数据等:   Multi-Range Re ...

  6. MySQL 5.7新特性介绍

    本文是基于MySQL-5.7.7-rc版本,未来可能 还会发生更多变化. 1.即将删除的特性1.1.InnoDB monitoring features,详见:WL#7377(访问地址:http:// ...

  7. MySQL 5.7新特性之Generated Column(函数索引)

    MySQL 5.7引入了Generated Column,这篇文章简单地介绍了Generated Column的使用方法和注意事项,为读者了解MySQL 5.7提供一个快速的.完整的教程.这篇文章围绕 ...

  8. 初识 MySQL 5.6 新特性、功能

    背景: 之前介绍过 MySQL 5.5 新功能.参数,现在要用MySQL5.6,所以就学习和了解下MySQL5.6新的特性和功能,尽量避免踩坑.在后续的学习过程中文章也会不定时更新. 一:参数默认值的 ...

  9. MySQL 5.7新特性之generated column

    MySQL 5.7引入了generated column,这篇文章简单地介绍了generated column的使用方法和注意事项,为读者了解MySQL 5.7提供一个快速的.完整的教程.这篇文章围绕 ...

  10. MySQL 5.6新特性 -- Multi-Range Read

    如果基表很大,数据没有被缓存,在二级索引上使用范围扫描读取行可能会导致大量的随机磁盘访问.使用Multi-Range Read新特性,mysql可以减少对磁盘的随机读的次数:首先,mysql只是扫描索 ...

随机推荐

  1. zjoi 力

    显然fft维护卷积就可以了 发现fft里面会改变很多东西 要还原一下 #include <bits/stdc++.h> #define dob complex<double> ...

  2. python全栈开发day29-网络编程之socket常见方法,socketserver模块,ftp作业

    一.昨日内容回顾 1.arp协议含义 2.子网,子网掩码 3.两台电脑在网络中怎么通信的? 4.tcp和udp socket编码 5.tcp和udp协议的区别 6.tcp三次握手和四次挥手,syn洪攻 ...

  3. Lineage逻辑回归分类算法

    Lineage逻辑回归分类算法 线性回归和逻辑回归参考文章: http://blog.csdn.net/viewcode/article/details/8794401 http://www.cnbl ...

  4. BZOJ1146 [CTSC2008]网络管理Network 树链剖分 主席树 树状数组

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1146 题意概括 在一棵树上,每一个点一个权值. 有两种操作: 1.单点修改 2.询问两点之间的树链 ...

  5. 002.Open-Falcon Server部署及Agent监控

    一 前期准备 节点 IP 备注 falcon 私网:172.24.10.95 临时公网:120.132.23.107 Open-Falcon服务端 node01 172.24.10.216 被监控端 ...

  6. Java内存管理-JVM内存模型以及JDK7和JDK8内存模型对比总结(三)

    勿在流沙住高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 上一篇分享了JVM及其启动流程,今天介绍一下JVM内部的一些区域,以及具体的区域在运行 ...

  7. C# 开发圆角控件的具体实现

    http://www.jb51.net/article/47433.htm 代码来源

  8. 11.1 正睿停课训练 Day14

    目录 2018.11.1 正睿停课训练 Day14 A 字符串 B 取数游戏(贪心) C 魔方(模拟) 考试代码 B C 2018.11.1 正睿停课训练 Day14 时间:3.5h 期望得分:100 ...

  9. cf348D. Turtles(LGV定理 dp)

    题意 题目链接 在\(n \times m\)有坏点的矩形中找出两条从起点到终点的不相交路径的方案数 Sol Lindström–Gessel–Viennot lemma的裸题? 这个定理是说点集\( ...

  10. 10.23 正睿停课训练 Day7

    目录 2018.10.23 正睿停课训练 Day7 A 矩形(组合) B 翻转(思路) C 求和(思路 三元环计数) 考试代码 B1 B2 C 2018.10.23 正睿停课训练 Day7 期望得分: ...