dumpling 指定--snapshot 参数,无法导出某个快照的数据,导出的还是最新的数据

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】 3.0.13
【复现路径】做过哪些操作出现的问题

root@192.168.8.11:4000 12:51:24 [testdb01]>create table t (c int);
Query OK, 0 rows affected (1.03 sec)

root@192.168.8.11:4000 12:51:30 [testdb01]>
root@192.168.8.11:4000 12:51:34 [testdb01]>insert into t values (1), (2), (3);
Query OK, 3 rows affected (0.02 sec)
Records: 3 Duplicates: 0 Warnings: 0

root@192.168.8.11:4000 12:51:36 [testdb01]>select * from t;
±-----+
| c |
±-----+
| 1 |
| 2 |
| 3 |
±-----+
3 rows in set (0.00 sec)

root@192.168.8.11:4000 12:57:50 [testdb01]>

更新数据,把 2 改为22

root@192.168.8.11:4000 12:57:50 [testdb01]>select now();update t set c=22 where c=2;
±--------------------+
| now() |
±--------------------+
| 2023-03-12 12:58:00 |
±--------------------+
1 row in set (0.00 sec)

Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0

root@192.168.8.11:4000 12:58:00 [testdb01]>select * from t;
±-----+
| c |
±-----+
| 1 |
| 22 |
| 3 |
±-----+
3 rows in set (0.00 sec)

设置快照时间点

root@192.168.8.11:4000 12:58:03 [testdb01]>set @@tidb_snapshot=“2023-03-12 12:57:00”;
Query OK, 0 rows affected (0.02 sec)

“2023-03-12 12:57:00” 这个时间点的快照数据是之前的数据

root@192.168.8.11:4000 12:58:38 [testdb01]>select * from t;
±-----+
| c |
±-----+
| 1 |
| 2 |
| 3 |
±-----+
3 rows in set (0.00 sec)

gc 是24小时,保证gc不会被清理

root@192.168.8.11:4000 12:58:40 [testdb01]>select * from mysql.tidb where variable_name=‘tikv_gc_life_time’;
±------------------±---------------±---------------------------------------------------------------------------------------+
| VARIABLE_NAME | VARIABLE_VALUE | COMMENT |
±------------------±---------------±---------------------------------------------------------------------------------------+
| tikv_gc_life_time | 24h | All versions within life time will not be collected by GC, at least 10m, in Go format. |
±------------------±---------------±---------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

tidb版本 TiDB-v3.0.13

root@192.168.8.11:4000 12:58:58 [testdb01]>\s

mysql Ver 14.14 Distrib 5.7.32, for linux-glibc2.12 (x86_64) using EditLine wrapper

Connection id: 54
Current database: testdb01
Current user: root@192.168.8.11
SSL: Not in use
Current pager: stdout
Using outfile: ‘’
Using delimiter: ;
Server version: 5.7.25-TiDB-v3.0.13 MySQL Community Server (Apache License 2.0)
Protocol version: 10
Connection: 192.168.8.11 via TCP/IP
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8
Conn. characterset: utf8
TCP port: 4000

#使用dumpling 导出 “2023-03-12 12:57:00” 这个时间点快照的数据

[root@test01 tmpdata]# dumpling --snapshot “2023-03-12 12:57:00” -uroot -P4000 -h 192.168.8.11 -p’123456’ --filetype sql -t 8 -r 200000 -F 256MiB -T testdb01.t --consistency snapshot -o ./d1
Release version:
Git commit hash: 0175843056a6068dd2f64afca6277d890934b63c
Git branch: master
Build timestamp: 2020-06-08 02:26:25Z
Go version: go version go1.13.4 linux/amd64

[2023/03/12 13:00:32.932 +08:00] [INFO] [config.go:118] [“detect server type”] [type=TiDB]
[2023/03/12 13:00:32.932 +08:00] [INFO] [config.go:136] [“detect server version”] [version=3.0.13]
[2023/03/12 13:00:32.944 +08:00] [WARN] [black_white_list.go:15] [“unsupported dump schema in TiDB now”] [schema=PERFORMANCE_SCHEMA]
[2023/03/12 13:00:32.944 +08:00] [WARN] [black_white_list.go:15] [“unsupported dump schema in TiDB now”] [schema=mysql]
[2023/03/12 13:00:32.944 +08:00] [WARN] [black_white_list.go:15] [“unsupported dump schema in TiDB now”] [schema=INFORMATION_SCHEMA]
[2023/03/12 13:00:32.993 +08:00] [INFO] [main.go:178] [“dump data successfully, dumpling will exit now”]
[root@test01 tmpdata]# cat d1/testdb01
testdb01-schema-create.sql testdb01.t.0.sql testdb01.t-schema.sql

导出来的数据是最新的数据22,不是"2023-03-12 12:57:00"这个时间点的快照的数据2 ,为什么呢?

[root@test01 tmpdata]# cat d1/testdb01.t.0.sql
/!40101 SET NAMES binary/;
INSERT INTO t VALUES
(1),
(22),
(3);
[root@test01 tmpdata]# dumpling --version
Release version:
Git commit hash: 0175843056a6068dd2f64afca6277d890934b63c
Git branch: master
Build timestamp: 2020-06-08 02:26:25Z
Go version: go version go1.13.4 linux/amd64

[root@test01 tmpdata]#

【遇到的问题:问题现象及影响】
dumpling 指定–snapshot 参数,无法导出某个快照的数据,导出的还是最新的数据
【资源配置】
【附件:截图/日志/监控】

3.X 的 文档已经找不到了,要不升级吧…

我感觉是不支持 snapshot 的功能特性

找到了一点点: mydumper
参考下
https://docs.pingcap.com/zh/tidb/v3.0/mydumper-overview

建议升级,很多旧版本的问题其实在高版本上已经解决

这个… 想验证一把都没环境了 :dizzy_face: :dizzy_face: :dizzy_face:

3版本的环境都弄不到了,先复现都复现不了了

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