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';


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM