BR Restore incremental data encountered Error: [kv:1062]Duplicate entry
Please answer these questions before submitting your issue. Thanks!
- What did you do? If possible, provide a recipe for reproducing the error.
Cluster TiDB1
- create table test( id int,name varchar(20));
- insert into test values(1,'a'),(3,'b'));
- tiup br:v5.4.0 backup table --pd "172.xx.x.138:16279" --db test --table test --storage "local:///tmp/backup" --log-file backup.log
- alter table test add age int default 1;
- update test set age=2 where id=1;
- update test set age=3 where id=3;
- alter table test add unique index indx(age);
- tiup br:v5.4.0 backup table --pd "172.xx.xx.138:16279" --db test --table test --storage "local:///tmp/backupincr" --log-file backup.log --lastbackupts 434262749356228611
Cluster TiDB2
-
tiup br:v5.4.0 restore table --pd "172.xx.xx.136:16279" --db "test" --table "test" --storage "local:///tmp/backup"
-
tiup br:v5.4.0 restore table --pd "172.xx.xx.136:16279" --db "test" --table "test" --storage "local:///tmp/backupincr"
-
What did you expect to see?
restore incremental data success.
- What did you see instead?
alter table test add unique index indx(age);
[2022/06/30 17:35:16.975 +08:00] [INFO] [collector.go:67] ["Table restore failed summary"] [total-ranges=0] [ranges-succeed=0] [ranges-failed=0]
Error: [kv:1062]Duplicate entry '1' for key 'indx'
Error: run /home/tidbryl/.tiup/components/br/v5.4.0/br (wd:/home/tidbryl/.tiup/data/TAES1t4) failed: exit status 1
- What version of BR and TiDB/TiKV/PD are you using?
BR version: Release Version: v5.4.0 Git Commit Hash: 55f3b24c1c9f506bd652ef1d162283541e428872 Git Branch: heads/refs/tags/v5.4.0 Go Version: go1.16.4 UTC Build Time: 2022-01-25 08:36:34
cluster version: v5.4.0
-
Operation logs
- Please upload
br.logfor BR if possible - Please upload
tidb-lightning.logfor TiDB-Lightning if possible - Please upload
tikv-importer.logfrom TiKV-Importer if possible - Other interesting logs
- Please upload
-
Configuration of the cluster and the task
-
tidb-lightning.tomlfor TiDB-Lightning if possible -
tikv-importer.tomlfor TiKV-Importer if possible -
topology.ymlif deployed by TiUP
-
-
Screenshot/exported-PDF of Grafana dashboard or metrics' graph in Prometheus if possible
Cloud you please add the sql statement of adding column age?
Done,Please check.
This problem seems to affect all 4.x and 5.x and I'am not sure whether it has been fixed in 6.x
The problem lies the logic: When restore, we always restore ddl first and then the table data, maybe we should rethink this logic again.
/assign @WangLe1321