TiDB Binlog 下游db-type='file'的疑惑

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v4.0.6
  • 【问题描述】:

为满足业务需求, 需要保证数据具备还原至任意时间点的能力, 因此采用每日BR完整备份 + reparo恢复binlog日志的策略, 系统实际运行时发现syncer.to.dir下的binlog日志只有当大小达到512M时才会落盘, 猜测未落盘部分是放在内存中, 正常关闭启动服务时也能够看到binlog落盘, syncer.to.checkpoint一直是实时的

问题: 如果发生集群整体故障, 无法起来, 那是否会存在binlog还未落盘, 丢失部分数据的情况
或者说我应该调整什么参数来避免或者减少损失

如果是 binlog 的 pump 方式出现集群 crash 以后,正常 prewrite-binlog 不会丢,可能丢的是少部分 commit-binlog。因为 pump 的 binlog 数据的 prewrite-binlog 和 两阶段提交的 prewrite 的强一致的,必须保证都完成,pump 才会返回写入成功。所以正常情况是会保证和 TiDB 的数据一致的,如果真的有差异需要 reparo 回到集群,用 sync-diff-inspector 确认一下数据一致性。

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。