5.0 binlog相关疑问

【 TiDB 使用环境】生产环境 or 测试环境 or POC
生产环境

【 TiDB 版本】
5.0

【遇到的问题】

  1. TiDB 集群只部署 pump 组件,不部署 drainer 进行消费,那么 pump 服务器上的 binlog 会一直保留吗?还是超过 GC 时间会被清理掉?
  2. drainer 和 tidb 部署在同一台服务器时报端口冲突,比如 9100 端口冲突,即使同一台服务器上部署多个 drainer 也报这个错误,应该如何处理?
  3. 使用 tiup 将 drainer 缩容之后,drainer 一直处于 Pending Offline 状态,虽然可以通过加上 --force 参数强制缩容掉 drainer ,但是 force 是不建议的,那么正规的缩容 drainer 的流程是什么?
  4. drainer 默认不会同步哪些库?已知的有 mysql 库不会同步,其他还有什么库不会同步

谢谢

【复现路径】做过哪些操作出现的问题
【问题现象及影响】

【附件】

请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。

5.x 之后的tidb,建议直接使用 ticdc, binlog 上存在兼容性的问题

如下:
https://docs.pingcap.com/zh/tidb/stable/tidb-binlog-overview#注意事项

  1. pump有独立的GC 时间 ,可以按照需要设定保留的天数
    https://docs.pingcap.com/zh/tidb/stable/tidb-binlog-faq#pump-磁盘快满了怎么办

  2. drainer 建议独立部署,方便运维和扩缩容

  3. Pump/Drainer 中状态的定义:

  1. 待补充

第3个问题,当执行完 tiup cluster scale-in test_cluster -N xx.xx.xx.xx:8249 后,通过 tiup custer display test_cluster 看到 drainer 处于 pending offline 状态,但是集群没有提示让执行 tiup cluster prune test_cluster 操作,如果手动去执行 tiup cluster prune test_cluster操作,会提示

Error: drainer node-id: xx.xx.xx.xx:8249 not found, found address: /tidb-binlog/v1/drainer/xx.xx.xx.xx:8249

我的理解是,5.0的版本对于drainer缩容这块是有点小bug的,没有考虑 prune 这部分内容

1赞

现在遇到的比较棘手的问题,还有一个是,如何复用tidb-server的机器部署drainer,我看了下prometheus.yml的配置,只需要tiup工具支持即可,估计得修改tiup工具,加入多drainer的支持

1赞

建议 折腾 TICDC … 对于扩缩容会更简单点

pump 和 drainer 对大量的 DDL 还有个很大的缺陷… 暂时还没修复,如果你的环境没有大量的DDL变更,就可以忽略

什么缺陷,可以说一下吗,多谢,我们综合考虑下

官方文档说,有些新的特性不支持,建议使用CDC