radius 发表于 2023-8-18 10:33:11

mysql binlog 读取的时机问题?

binlog 只有 fsync 到 磁盘才能被 从库读取吗。刷到文件系统缓存而未执行 fsync 的日志,从库是不是还不能读?

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/user-manual/2-about-greatsql/2-3-greatsql-arch.html
- https://greatsql.cn/blog-10-1296.html
页: [1]
查看完整版本: mysql binlog 读取的时机问题?