Mysql 5.7 Gtid内部学习(七) 总结binlog_gtid_simple_recovery参数带来的影响
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,简书地址:http://www.jianshu.com/p/c9888d6447c8想了想还是专门开了一节来总结这个问题5.7.6以下中默认simplified_binlog_gtid_recover
千家信息网最后更新 2025年01月20日Mysql 5.7 Gtid内部学习(七) 总结binlog_gtid_simple_recovery参数带来的影响
简书地址:
http://www.jianshu.com/p/c9888d6447c8
想了想还是专门开了一节来总结这个问题
5.7.6以下中默认
- simplified_binlog_gtid_recovery=flase
5.7.6以上中默认
- binlog_gtid_simple_recovery=true
默认值就是最合理的设置。
因为参数名更改了所以下面统称simple_recovery来代替。
一、Gtid关闭
simple_recovery=flase
5.7.6以下:这种方式一定得到正确的Gtid集合
- 重启Mysql需要扫描全部的binlog来获得正确的Gtid集合
- purge binlog或者超过参数expire_logs_days参数设置不触发全binlog扫描,由上层函数控制。因为不支持在线的Gtid更改。
5.7.6以上:这种方式一定得到正确的Gtid集合
- 重启Mysql扫描全部的binlog。
- purge binlog或者超过参数expire_logs_days参数设置触发全binlog扫描。
simple_recovery=true
5.7.6以下:这种情况可能得不到正确的Gtid集合
- 重启Mysql不扫描全部的binlog,只扫描第一个和最后一个binlog。
- purge binlog或者超过参数expire_logs_days参数设置不触发全binlog扫描,由上层函数控制。
5.7.6以上:由于有每个binlog都有Previous gtid Event的支持能够得到正确的Gtid集合。
- 重启Mysql不扫描全部的binlog,只扫描第一个和最后一个binlog。
- purge binlog或者超过参数expire_logs_days参数设置不触发全binlog扫描,只扫描第一个和最后一个binlog。
二、Gtid打开
simple_recovery=flase
5.7.6以下:这种方式一定得到正确的Gtid集合。
- 重启Mysql不扫描全部的binlog,如果是中途打开GTID,重启任然需要扫描多个binlog因为需要找到Previous gtid Event。
- purge binlog或者超过参数expire_logs_days参数设置不触发全binlog扫描,如果是中途打开GTID重启,任然需要扫描多个binlog因为需要找到Previous gtid Event。
5.7.6以上:这种方式一定得到正确的Gtid集合
- 重启Mysql不扫秒全部的binlog,如果是中途打开GTID重启任然需要扫描多个binlog因为需要找到Gtid event。
- purge binlog或者超过参数expire_logs_days参数设置不触发全binlog扫描,如果是中途打开GTID重启任然需要扫描多个binlog因为需要找到Gtid event。
simple_recovery=true
5.7.6以下:这种情况可能得不到正确的Gtid集合
- 重启Mysql不扫描全部的binlog,只扫描第一个和最后一个binlog。
- purge binlog或者超过参数expire_logs_days参数设置不扫描全部binlog,只扫描第一个和最后一个binlog。
5.7.6以上:由于有每个binlog都有Previous gtid Event的支持能够得到正确的Gtid集合。
- 重启Mysql不扫描全部的binlog,只扫描第一个和最后一个binlog。
- purge binlog或者超过参数expire_logs_days参数设置不触发全binlog扫描,只扫描第一个和最后一个binlog。
三、本节总结
- 5.7.6以下保持默认设置simplified_binlog_gtid_recovery=flase,但是这会导致过多的binlog扫描,况且5.6没有mysql.gtid_executed的支持,从库必须开启log_slave_updates,这会带来性能影响。所以还是少用Gtid。
- 5.7.6以上由于对每个binlog都有Previous gtid Event的支持binlog_gtid_simple_recovery=true是合理的设置,binlog扫描非常的快因为只是第一个和最后一个binlog文件而已。
可以看到Gtid也越来越成熟了。这部分的逻辑在函MYSQL_BIN_LOG::init_gtid_sets中前文已经提到过,这里就不看代码了。
此外在5.7的官方文档中对binlog_gtid_simple_recovery=true 有如下警告的描述:
If this option is enabled, gtid_executed and gtid_purged may beinitialized incorrectly in the following situations:? The newest binary log was generated by MySQL 5.7.5 or older, andgtid_mode was ON for some binary logs but OFF for the newest binary log.? A SET GTID_PURGED statement was issued on a MySQL versionprior to 5.7.7, and the binary log that was active at the time of the SETGTID_PURGED has not yet been purged.If an incorrect GTID set is computed in either situation, it will remain incorrecteven if the server is later restarted, regardless of the value of this option.
如果将参数设置为true可能在老版本中得不到正确的Gtid集合,也是前面讨论的。
学习完本节至少能够学习到:
- binlog_gtid_simple_recovery/simplified_binlog_gtid_recovery是如何影响binlog文件的扫描的的
- 5.7.6以下应该如何设置
- 5.7.6以上应该如何设置
作者微信:
参数
支持
多个
方式
学习
影响
上层
函数
情况
文件
还是
控制
成熟
代码
作者
只是
地址
官方
就是
性能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
iot管理服务器
联机服务器管理指令集
数据库edit怎么用
计算机软件开发设计专业
海康存储服务器下载教程视频
KK语音软件开发
银行网络安全知识培训宣传
软件开发生命周期思想方法
濮阳网络技术联系方式
郑州科技软件开发公司排名
公安网络技术部门管理制度
耀邦科技软件开发
数据库唯一约束怎么写
惠州市云网网络技术有限公司
网络安全登记保护 三级
国家安全之网络安全图片
使用数据库的sql语句
光网络技术考试题
线索管理软件开发
网络技术交流社区
udp服务器】安全
长宁区什么是软件开发服务保障
青岛海浪软件开发
国外服务器广告投放怎么备案
公安网络安全员培训
风电场网络安全知识培训总结
主从数据库mssql
凯几网络技术工作室
数据库出生日期的数据类型
网络文明网络安全宣传活动