mysql syncmasterinfo_sync_master_info的一些说明
默认我们MySQL5.6线上环境都是
master_info_repository = TABLE
relay_log_info_repository = TABLE
官方文档上对 sync_master_info 描述如下:
The effects of this variable on a replication slave depend on whether the slaves master_info_repository is set to FILE or TABLE, as explained in the following paragraphs.
默认为10000。设置为1表示每个EVENT都要执行刷盘操作(注意不是每个事务!),为0表示有操作系统来决定何时刷盘。
对于 master_info_repository = TABLE 情况下,If the value of sync_master_info is greater than 0, the slave updates its master info repository table after every sync_master_info events. If it is 0, the table is never updated.
我们可以做个小实验
搭建一套传统复制的主从环境。
在从库执行
set global sync_master_info=1;
然后,在主库插入一条记录。再到从库去查看 select * from mysql.slave_master_info \G 结果中的Master_log_pos字段值。并执行show slave status \G 查看Exec_Master_Log_Pos值。
可以重复操作几次数据插入,可以发现和mysql.slave_master_info里面是一致的。
然后,在从库设置
set global sync_master_info=10000;
然后,在主库插入一条记录。再到从库去查看 select from mysql.slave_master_info \G 结果中的Master_log_pos字段值。并执行show slave status \G 查看Exec_Master_Log_Pos值。
可以重复操作几次数据插入,可以发现show slave status \G 和mysql.slave_master_info里面对不上了。
show slave status \G 展示的是基本实时的exec_master_log_pos数据。但是 select from mysql.slave_master_info \G 里面却迟迟不更新。 这就是sync_master_info参数的功效。
说明:
如果set global sync_master_info=1的话,理论上复制会更安全,但是这样的话执行每个event都要去update一次 mysql.slave_master_info,就增大了磁盘IO,因此我们一般在从库也启用binlog,这样即便复制出问题了,根据从库记录下的最后的binlog信息可以重新change master到主库上。
mysql syncmasterinfo_sync_master_info的一些说明相关推荐
- mysql 快捷查询数据库各表占用空间,mysql查看索引占用空间,mysql查看数据占用空间
先贴一张图! 第一步,"很重要" 在mysql中,有一个创建之初自带的库information_schema,这个库中包含着数据库相关信息,查询数据占用空间就是使用该库,所以首先进 ...
- mysql并发更新数据,多用户并发修改数据解决方案。
mysql并发更新数据,多用户并发修改数据解决方案. 在系统中,有一些如余额.资产.积分的数据,是要保证数据一致性的.如,一个人使用两个设备同时进行消费操作,如何保证数据一致性的问题. 我们一起来思考 ...
- mysql查询字段大小写结果相同,mysql大小写查询不敏感,mysql5.7查询不区分大小写解决方案。
下面有两条sql,主键查询,在mysql中查询到的结果相同. SELECT* FROM USER WHEREid = 'EM58hdK4nXC';SELECT* FROM USER WHEREid = ...
- 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法
数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...
- mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string
mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from strin ...
- docker一步安装mysql,docker的魅力就在于此
正常来说,使用docker安装东西的步骤是serach它有没有,然后pull它 这里其实只要一步(如果你没有安装过.没有端口占用等问题的话!!) $ docker run -d -p 3306:330 ...
- 设置腾讯云linux服务器中 MySQL 允许远程访问
申请了一台linux腾讯云服务器,想要把数据库搭建在上面,本地的Windows直接可以访问 以下就是具体的操作流程,首先你需要安装好一个mysql,安装方法–>mysql安装(Linux) 接着 ...
- Linux安装mysql,一步到位!
今天在腾讯云上面买了一个服务器,想要把自己的项目部署一下,就要安装mysql,以下是我的安装步骤,在网上有很多人把install敲错了,还有的少-get,种种错误试完之后,我决定发一篇 sudo ap ...
- Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译
Mysql函数group_concat.find_in_set进行数据库字段值翻译 场景 配方表:记录包含的原料 sources表示原料,字段值之间用逗号分隔 原料表:对应原料id和原料名称 现需要查 ...
最新文章
- 项目需求(20-30万)|人体三维动作重构
- MySQL InnoDB 锁表与锁行
- QT使用winsocket
- Android之Fragment(二)
- 15个优雅的Python编程技巧,掌握后瞬间玩转Python
- 设置在最小数目的阵列
- 09-OpenLDAP加密传输配置
- xxx is not mapped 错误 解决方案
- BZOJ1934: [Shoi2007]Vote 善意的投票
- linux mongo 添加用户名和密码,mongodb3.4 安装及用户名密码设置
- 手机组态软件_安卓平板组态软件​_移动端组态
- EXCEL 对筛选结果进行排序
- python条件判断天气_Python小课—条件判断—学习笔记(4)
- latex IEEEtran bib参考文献title双引号
- 笔记本外接扩展屏显示模糊解决方案
- 【C进阶】之动态内存分配及内存操作函数
- 关于应用程序无法正常启动0xc000007b的解决方案
- 制作动图简易软件(附下载方式)
- 2016年下半年总结(连载)!
- 适合中小企业的ERP管理软件如何选择?
热门文章
- Jenkins学习总结(6)——Jenkins 的安全实践
- Mysql学习总结(63)——Mysql数据库架构方案选择与分析
- SQLite学习总结(3)——SQLite命令及语法
- 项目管理学习总结(6)——产品经理常用的工具有哪些?
- Java基础学习总结(104)——多线程、并发、工具类相关的面试题
- Java基础学习总结(29)——浅谈Java中的Set、List、Map的区别
- mysql8无法修改端口_mysql8.0.18 修改端口报错 Can't start server: Bind on TCP/IP port: Permission denied...
- java client和servers_“java -server”和“java -client”之间的真正区别?
- (键盘)代码 19:由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备 解决方法...
- MYSQL正式环境主从复制(不锁表,不停服务)