TiDB Binlog 该如何理解,有没有必要开启?

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】6.5
思维固化在 MySQL 的 Binlog,该如何理解 TiDB 的 Binlog ,初看觉得两者不一样,大家怎么理解的?

tidb的binlog合mysql的binlog完全不一样,并且不推荐用这个了
https://docs.pingcap.com/zh/tidb/v7.1/tidb-binlog-overview?_gl=1*k7sznt*_ga*MTQ4NzE5MDkyOC4xNzA4MjUwODAw*_ga_3JVXJ41175*MTcxMDkwNzAyNi44Ni4xLjE3MTA5MDc4MjIuOC4wLjA.#tidb-binlog-简介

我理解他们都是逻辑的变更日志(相对redo物理的),都能用于同步和恢复场景,但是采用协议不同。

mysql 的sql执行层和数据存储层都存放在mysql节点,所以mysql的binlog既可以是sql类型的,也可以是row类型的,还能是混合型的。
而tidb的sql执行层是tidb-server,数据存储层是tikv,而tidb 的binlog是针对tidb-server的,所以生成的binlog都是sql类型的。
tidb后面出的ticdc是针对tikv层的,直接获取tikv的数据变化,你可以理解成mysql的row类型的binlog,这个直接从存储层来获取数据变化,性能更强大,一致性也更加能保证。

2 个赞

太到位了说的

:+1: 大佬解释的明明白白

太到位了说的

如果 tidb 需要有下游的话则开启 binlog

现在一般都是ticdc 使用较多了