【 TiDB 使用环境】生产\测试环境\ POC
【 TiDB 版本】TIDB v5.4.0 DMv2.0.1
【遇到的问题】请教 DM 将多个库同步至TIDB ,上游源数据库执行delete table, TIDB库中表仅该库的数据被删除, 其他库同步数据未被删除, 实现的原理是什么 是通过事务ID吗, DDL truncate在上游执行 TIDB数据同步执行 影响其他库数据
【复现路径】做过哪些操作出现的问题
【问题现象及影响】如 MYSQL A库、 MYSQLB库 都有表 test_dm同步数据至TIDB C库 test_dm DM同部方式为all 无event过滤
A库
create table test_dm
(
id int,
name varchar(20),
port varchar(20) default ‘3306’,
primary key (id)
);
B库
create table test_dm
(
id int,
name varchar(20),
port varchar(20) default ‘3307’,
primary key (id)
);
C库
create table test_dm
(
id int,
name varchar(20),
port varchar(20) default ‘3308’)
;
A库
MySQL [test_db]> insert into test_dm(id,name) values(1,‘AA’),(2,‘BB’);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
MySQL [test_db]> select * from test_dm;
±—±-----±-----+
| id | name | port |
±—±-----±-----+
| 1 | AA | 3306 |
| 2 | BB | 3306 |
±—±-----±-----+
2 rows in set (0.00 sec)
B库
mysql> insert into test_dm(id,name) values(1,‘AA’),(2,‘BB’);
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from test_dm;
±—±-----±-----+
| id | name | port |
±—±-----±-----+
| 1 | AA | 3307 |
| 2 | BB | 3307 |
±—±-----±-----+
2 rows in set (0.00 sec)
C库 (数据全部同步)
MySQL [test_db]> select * from test_dm;
±-----±-----±-----+
| id | name | port |
±-----±-----±-----+
| 1 | AA | 3306 |
| 2 | BB | 3306 |
| 2 | BB | 3307 |
| 1 | AA | 3307 |
±-----±-----±-----+
4 rows in set (0.00 sec)
A库
MySQL [test_db]> delete from test_dm where id=1;
Query OK, 1 row affected (0.00 sec)
MySQL [test_db]> select * from test_dm;
±—±-----±-----+
| id | name | port |
±—±-----±-----+
| 2 | BB | 3306 |
±—±-----±-----+
1 row in set (0.01 sec)
C库 (仅A库id为1数据被删除)
MySQL [test_db]> select * from test_dm;
±-----±-----±-----+
| id | name | port |
±-----±-----±-----+
| 2 | BB | 3306 |
| 2 | BB | 3307 |
| 1 | AA | 3307 |
±-----±-----±-----+
3 rows in set (0.00 sec)
B库
mysql> delete from test_dm where id=2;
Query OK, 1 row affected (0.00 sec)
mysql> select * from test_dm;
±—±-----±-----+
| id | name | port |
±—±-----±-----+
| 1 | AA | 3307 |
±—±-----±-----+
1 row in set (0.00 sec)
C库(仅B库id为2数据被删除)
MySQL [test_db]> select * from test_dm;
±-----±-----±-----+
| id | name | port |
±-----±-----±-----+
| 2 | BB | 3306 |
| 1 | AA | 3307 |
±-----±-----±-----+
2 rows in set (0.00 sec)
B库
mysql> truncate table test_dm;
Query OK, 0 rows affected (0.00 sec)
C库 (全部清空)
mysql> select * from test_dm;
Empty set (0.00 sec)
【附件】
- 相关日志、配置文件、Grafana 监控(https://metricstool.pingcap.com/)
- TiUP Cluster Display 信息
- TiUP CLuster Edit config 信息
- TiDB-Overview 监控
- 对应模块的 Grafana 监控(如有 BR、TiDB-binlog、TiCDC 等)
- 对应模块日志(包含问题前后 1 小时日志)
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。