TiDB Binlog Relay Log

    下游集群达到一致的状态是指:下游集群的数据等同于上游设置了 的快照。

    checkpoint 状态一致性是指:Drainer checkpoint 通过 consistent 保存了同步的一致性状态。Drainer 运行时 consistentfalse,Drainer 正常退出后 consistent 更新为 。

    Drainer 开启 relay log 后会先将 binlog event 写到磁盘上,然后再同步给下游集群。如果上游集群不可用,Drainer 可以通过读取 relay log 把下游集群恢复到一个一致的状态。

    若同时丢失 relay log 数据,该方法将不可用,不过这是概率极小的事件。此外可以使用 NFS 等网络文件系统来保证 relay log 的数据安全。

    如果 Drainer 启动时无法连接到上游集群的 PD,并且探测到 checkpoint 的 consistent = false,此时会尝试读取 relay log,并将下游集群恢复到一致的状态。然后 Drainer 进程将 checkpoint 的 consistent 设置为 true 后主动退出。

    Relay log 的清理(GC)机制

    在 Drainer 中添加以下配置来开启 relay log 功能:

    1. [syncer.relay]
    2. log-dir = "/dir/to/save/log"
    3. # 单个 relay log 文件大小限制(单位:字节)。
    4. # 超出该值后会将 binlog 数据写入到下一个 relay log 文件。