TIDB 主从集群环境搭建

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】: V2.1.15
  • 【问题描述】: 我想搭建一个套 tidb从集群,用于数仓的数据抽取和应用只读数据查询; 要求:最好能做到实时的数据同步和延迟不超过15秒; 从官网上看到tidbbinlog 通过pump和drainer 同步到tidb或者mysql下,我通过测试环境下部署和数据校验发现数据不完全同步,需要执行生成的fix.sql 文件,我想肯定是我选择的方法不对(这种方法不是tidb主从集群) 问题: 怎么搭建tidb的主从集群环境(dm了解到的是从mysql同步到tidb的服务)? 或者告诉我参考文档,我自行查看?

目前有效的手段是使用 binlog。具体可以看这篇文章:

https://pingcap.com/docs-cn/stable/reference/tools/sync-diff-inspector/tidb-diff/#tidb-主从集群的数据校验

https://pingcap.com/docs-cn/stable/reference/tidb-binlog/monitor/

获取 ts-map

%E5%9B%BE%E7%89%87
我获取的ts-map为空呢,官方文章中ts-map是有数据的,是我的配置问题吗?

我好想知道原因了,db-type 设置为tidb,我设置的是mysql ;

是的。

我获取的ts-map还是为空,通过Ansible部署的drainer

inventory.ini 文件中的配置是:

[drainer_servers]

drainer_mysql ansible_host=10.10.10.11 initial_commit_ts=“412815412656865282”

conf 配置名称: drainer_mysql_drainer.toml

配置文件中的 db-type = “tidb”

以为我的环境是以前配置db-type=“mysql” 这个改成tidb的过程是:

  1. ansible-playbook stop_drainer.yml

2.更改上面的配置文件

3.ansible-playbook deploy_drainer.yml

4.ansible-playbook start_drainer.yml

启动drainer后,通过 select * from tidb_binlog.checkpoint; 发现ts-map还是为空

另外一种法: 更改inventory.ini 文件中的配置是:

[drainer_servers]

drainer_tidb ansible_host=10.10.10.11 initial_commit_ts=“412815412656865282”

conf 配置名称: drainer_tidb_drainer.toml

配置文件中的 db-type = “tidb”

两种的结果都一样!

%E5%9B%BE%E7%89%87

有尝试过重头开始部署吗?

你能说一下重新部署的整个过程吗?

先关闭集群的 binlog,并且关闭 pump 和 drainer 进程,之后将 pump 以及 drainer 的部署目录清空,重新按照官网步骤部署即可。

你好,我想请问一下 如果重新部署binlog的话 那重新部署时候的initial_commit_ts 应该在哪里取

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。