GreatSQL社区

搜索

[已解决] 阿里云RDS的SYNC_BINLOG=1000会影响CANAL处理速度吗?

216 4 2024-3-20 18:26
最近有个新项目上线几个月后,凌晨4点CANAL报日志121没有找到。后来发现日志121离线了,最后完成写入是昨天下午18:00!

然后开发怀疑上SYNC_BINLOG=1000 与其它两个项目SYNC_BINLOG =1 不一样。 说MYSQL要积累1000个事件才会通知从库。

中午时分 全量从新拉一边。 过了1天后他们跟领导反应情况,怀疑100%是这个参数导致的。其它两个项目都是1!
可是从全量重新同步后 过了1天 中都是SYNC_BINLOG=1000 参数作用下,CANAL收到通知只延迟了6秒

而通过翻译对比 RDS 主备实例的日志,RDS本身同步没有异常延迟情况。

全部回复(4)
innerDBA 2024-3-20 18:31:10
  1. rpl_semi_sync_master_enabled        OFF
  2. rpl_semi_sync_master_timeout        1000
  3. rpl_semi_sync_master_trace_level        1
  4. rpl_semi_sync_master_wait_for_slave_count        1
  5. rpl_semi_sync_master_wait_no_slave        OFF
  6. rpl_semi_sync_master_wait_point        AFTER_SYNC
  7. rpl_semi_sync_slave_enabled        OFF
  8. rpl_semi_sync_slave_trace_level        1
复制代码
InnerCodeDBA
yejr 2024-3-21 12:44:54
理论上应该不影响。

先改成1验证就知道啥结论了。
innerDBA 2024-3-21 15:27:03
yejr 发表于 2024-3-21 12:44
理论上应该不影响。

先改成1验证就知道啥结论了。

谢谢 我知道了
SYNC_BINLOG = 0 是关闭同步
SYNC_BINLOG = 1 在SYNC队列启动DUMP线程
SYNC_BINLOG = 1 在FLUSH队列 启动DUMP线程
InnerCodeDBA
tony 2024-3-26 09:38:18
sync_binlog的取值为1000时是当进行1000次事务提交后,mysql 将 binlog_cache 中的数据强制写入磁盘中,也就是binlog file。binlog file有数据更新才会有同步。
innerDBA

12

主题

0

博客

61

贡献

注册会员

Rank: 2

积分
92

助人为乐(铜)勤学好问(铜)

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

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