TiDB-binlog日志

增量准实时日志同步 (binlog)

TiDB Binlog 用于收集 TiDB 中的二进制日志数据,提供实时数据备份和同步以及将 TiDB 集群的数据增量同步到下游应用业务。

适用场景

  • 实时备份和恢复:备份 TiDB 集群数据,同时可以用于 TiDB 集群故障时恢复
  • 数据同步:将 TiDB 集群数据增量同步到其他数据库,或通过 Kafka 增量同步到选择的下游
    • 当使用 TiDB DM (Data Migration) 将数据从上游 MySQL 或者 MariaDB 迁移到 TiDB 集群时,可使用 TiDB Binlog 保持 TiDB 集群与其一个独立下游 MySQL 或 MariaDB 实例或集群同步。当 TiDB 集群上游数据迁移过程中出现问题,下游数据同步过程中可使用 TiDB Binlog 恢复数据到原先的状态。

TiDB Binlog 整体架构

TiDB Binlog 集群主要分为 Pump 和 Drainer 两个组件,以及 binlogctl 管理工具。

一个 Pump 集群中有若干个 Pump 节点。TiDB 实例连接到各个 Pump 节点并发送 binlog 数据到 Pump 节点。Pump 集群连接到 Drainer 节点,Drainer 将接收到的更新数据转换到某个特定下游(例如 Kafka、另一个 TiDB 集群或 MySQL 或 MariaDB Server)指定的正确格式。

binlog 架构

Pump 的集群架构能确保 TiDB 或 Pump 集群中有新的实例加入或退出时更新数据不会丢失。

Pump

用于实时记录 TiDB 产生的 Binlog,并将 Binlog 按照事务的提交时间进行排序,再提供给 Drainer 进行消费。

Drainer

从各个 Pump 中收集 Binlog 进行归并,再将 Binlog 转化成 SQL 或者指定格式的数据,最终同步到下游。

binlogctl 工具

与 TiDB Binlog 配套的运维工具。具有如下功能:

  • 获取 TiDB 集群当前的 TSO
  • 查看 Pump/Drainer 状态
  • 修改 Pump/Drainer 状态
  • 暂停/下线 Pump/Drainer

软件下载地址

对于 v2.1.0 GA 及以上版本,Pump 和 Drainer 已经包含在 TiDB 的下载包

# 下载官方 Binary
version='v4.0.9'
wget -c https://download.pingcap.org/tidb-{version}-linux-amd64.tar.gz &&
wget -c https://download.pingcap.org/tidb-{version}-linux-amd64.sha256
# 检查文件完整性
sha256sum -c tidb-{version}-linux-amd64.sha256

检查 TiDB 集群是否开启binlog

show variables like 'log_bin';
posted @ 2021-01-20 10:50  KuBee  阅读(1117)  评论(0编辑  收藏  举报