GreatSQL社区

搜索

[已解决] mysql binlog 读取的时机问题?

463 4 2023-8-18 10:33
binlog 只有 fsync 到 磁盘才能被 从库读取吗。刷到文件系统缓存而未执行 fsync 的日志,从库是不是还不能读?
全部回复(4)
yejr 2023-8-18 10:33:57
你是采用哪种复制方式?异步、半同步、MGR?
还有,sync_binlog设置值是什么
radius 2023-8-18 10:36:10
yejr 发表于 2023-8-18 10:33
你是采用哪种复制方式?异步、半同步、MGR?
还有,sync_binlog设置值是什么
...

异步复制,双一设置。另外如果不是双一读取时机又有什么不同吗?
fander 2023-8-18 16:40:30
radius 发表于 2023-8-18 10:36
异步复制,双一设置。另外如果不是双一读取时机又有什么不同吗?

主库的双一讲的是主库的binlog和redolog的刷盘时机。但这完全不影响从库接受binlog,你说的从库读取binlog,我理解是 io thread 线程 copy binlog 的动作,对吧。他是以binlog event 为单位拷贝的,是内存里进行的。 和刷不刷盘没关系。

但如果你用半同步复制,这个就有点关系了。这一块你没问,不方便扩展,扩展就是一篇文章了。
yejr 2023-8-19 06:05:45
radius 发表于 2023-8-18 10:36
异步复制,双一设置。另外如果不是双一读取时机又有什么不同吗?

异步复制的话,事务会要求先在master端写入并提交。
之后再将新产生的binlog发送到slave端。

更详细可参考以下几篇资料
- https://greatsql.cn/docs/8032/us ... -greatsql-arch.html
- https://greatsql.cn/blog-10-1296.html
radius

4

主题

0

博客

11

贡献

新手上路

Rank: 1

积分
17

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-5-8 02:12 , Processed in 0.031544 second(s), 16 queries , Redis On.
快速回复 返回顶部 返回列表