TIDB数据同步RDS遇到的问题

image

这是我的拓扑图, 我现在生产库是使用的阿里云 RDS 版本 mysql 5.7 我有两套TIDB集群 一套放在阿里云线上 一套在本地机房 线上的TIDB集群会去同步 阿里云的RDS 现在发现在RDS上创建表 TIDB里可以同步到这张表 但是再往这张表里面插入数据就会报错

image

这是报错日志

还有就是我本地的TIDB集群去同步线上的TIDB的时候 显示pos的数值过大

image 这是线上的TIDB的binlog

image

这个是报错日志

  1. RDS 同步到线上 TiDB 用的什么工具?这种情况一般上下游 schema 不对等,一般出现在分库分表场景。遇见这个问题,应当首先看下上下游中 schema 是否一致,通过 show create table 查看(如果binlog 延迟比较大, 请使用 mysqlbinlog 工具查看binlog内容),如果不一致,请修改成一致。 如果一致,还是报错,检查是否有分库分表或者route rule。

未使用分库分表,这是我新购买的RDS数据库,我使用的是rsncer工具来同步的

我创建表的就是 create table t1(id int); 这里可以同步 接下来插入数据 insert into t1 values (1); 这里 rsncer 进程就自己断开了

MySQL 同步到 TiDB 建议使用官方提供的 DM

那是哪个工具? 我需要实时同步

实时同步工具 DM 可以参考 PingCAP 官网 https://pingcap.com/docs-cn/dev/reference/tools/data-migration/overview/#dm-架构

我现在没有多余的服务器可以再去搭建DM集群了,还有其他办法吗?

没有。

那我第二个问题要怎么解决? 就是TIDB互相同步的问题,也还是起一个DM集群?

这个可以用 PingCAP 官方提供的 Binlog 同步工具 https://pingcap.com/docs-cn/v3.0/how-to/get-started/tidb-binlog/#tidb-binlog-简介