- 【TiDB 版本】:tidb v4.0.0 、 br v4.0.0
- 【问题描述】:BR v4.0.0 backup 成功,restore 失败
我们通过 tiup 创建了一个单点 tidb 环境,为了验证 br 备份功能,先通过 backup 全量备份了数据库(单 db 2000W 条数据左右),然后写入增量数据,再通过 br restore 回滚写入增量前 sst 文件,期望数据回滚成功
下面是相关错误命令:
$ ./tools/tidb-toolkit/bin/br restore full --pd "10.217.58.231:2379" --storage "local:///home/tidb/backup-shbt/br-backupfull-v1" --ratelimit 10 --log-file ./br-logs/backupfull-v1-restore-2.log
Detial BR log in ./br-logs/backupfull-v1-restore-2.log
Full restore <-----------------------------------------------------------------------------------------------------------> 100.00%
Checksum <-------------------------------------------------------/........................................................> 50.00%
Error: failed to validate checksum
关键错误日志:
[2020/06/05 10:51:54.632 +08:00] [ERROR] [client.go:180] ["tso request is canceled due to timeout"] [stack="github.com/pingcap/log.Error\
\t/go/pkg/mod/github.com/pingcap/log@v0.0.0-20200117041106-d28c14d3b1cd/global.go:42\
github.com/pingcap/pd/v4/client.(*client).tsCancelLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:180"]
[2020/06/05 10:51:54.632 +08:00] [ERROR] [client.go:265] ["[pd] getTS error"] [error="rpc error: code = Canceled desc = context canceled"] [errorVerbose="rpc error: code = Canceled desc = context canceled\
github.com/pingcap/pd/v4/client.(*client).processTSORequests\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:301\
github.com/pingcap/pd/v4/client.(*client).tsLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:250\
runtime.goexit\
\t/usr/local/go/src/runtime/asm_amd64.s:1357"] [stack="github.com/pingcap/log.Error\
\t/go/pkg/mod/github.com/pingcap/log@v0.0.0-20200117041106-d28c14d3b1cd/global.go:42\
github.com/pingcap/pd/v4/client.(*client).tsLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:265"]
[2020/06/05 10:51:54.634 +08:00] [ERROR] [base_client.go:130] ["[pd] failed updateLeader"] [error="failed to get leader from [http://10.217.58.231:2379]"] [errorVerbose="failed to get leader from [http://10.217.58.231:2379]\
github.com/pingcap/pd/v4/client.(*baseClient).updateLeader\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/base_client.go:198\
github.com/pingcap/pd/v4/client.(*baseClient).leaderLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/base_client.go:129\
runtime.goexit\
\t/usr/local/go/src/runtime/asm_amd64.s:1357"] [stack="github.com/pingcap/log.Error\
\t/go/pkg/mod/github.com/pingcap/log@v0.0.0-20200117041106-d28c14d3b1cd/global.go:42\
github.com/pingcap/pd/v4/client.(*baseClient).leaderLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/base_client.go:130"]
...
[2020/06/05 10:52:07.199 +08:00] [ERROR] [client.go:265] ["[pd] getTS error"] [error="rpc error: code = Unknown desc = alloc timestamp failed, lease expired"] [errorVerbose="rpc error: code = Unknown desc = alloc timestamp failed, lease expired\
github.com/pingcap/pd/v4/client.(*client).processTSORequests\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:301\
github.com/pingcap/pd/v4/client.(*client).tsLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:250\
runtime.goexit\
\t/usr/local/go/src/runtime/asm_amd64.s:1357"] [stack="github.com/pingcap/log.Error\
\t/go/pkg/mod/github.com/pingcap/log@v0.0.0-20200117041106-d28c14d3b1cd/global.go:42\
github.com/pingcap/pd/v4/client.(*client).tsLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:265"]
[2020/06/05 10:52:07.631 +08:00] [ERROR] [client.go:265] ["[pd] getTS error"] [error="rpc error: code = Unknown desc = alloc timestamp failed, lease expired"] [errorVerbose="rpc error: code = Unknown desc = alloc timestamp failed, lease expired\
github.com/pingcap/pd/v4/client.(*client).processTSORequests\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:301\
github.com/pingcap/pd/v4/client.(*client).tsLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:250\
runtime.goexit\
\t/usr/local/go/src/runtime/asm_amd64.s:1357"] [stack="github.com/pingcap/log.Error\
\t/go/pkg/mod/github.com/pingcap/log@v0.0.0-20200117041106-d28c14d3b1cd/global.go:42\
github.com/pingcap/pd/v4/client.(*client).tsLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:265"]
[2020/06/05 10:52:07.632 +08:00] [ERROR] [client.go:265] ["[pd] getTS error"] [error="rpc error: code = Unknown desc = alloc timestamp failed, lease expired"] [errorVerbose="rpc error: code = Unknown desc = alloc timestamp failed, lease expired\
github.com/pingcap/pd/v4/client.(*client).processTSORequests\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:301\
github.com/pingcap/pd/v4/client.(*client).tsLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:250\
runtime.goexit\
\t/usr/local/go/src/runtime/asm_amd64.s:1357"] [stack="github.com/pingcap/log.Error\
\t/go/pkg/mod/github.com/pingcap/log@v0.0.0-20200117041106-d28c14d3b1cd/global.go:42\
github.com/pingcap/pd/v4/client.(*client).tsLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:265"]
[2020/06/05 10:52:07.676 +08:00] [ERROR] [client.go:265] ["[pd] getTS error"] [error="rpc error: code = Unknown desc = alloc timestamp failed, lease expired"] [errorVerbose="rpc error: code = Unknown desc = alloc timestamp failed, lease expired\
github.com/pingcap/pd/v4/client.(*client).processTSORequests\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:301\
github.com/pingcap/pd/v4/client.(*client).tsLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:250\
runtime.goexit\
\t/usr/local/go/src/runtime/asm_amd64.s:1357"] [stack="github.com/pingcap/log.Error\
\t/go/pkg/mod/github.com/pingcap/log@v0.0.0-20200117041106-d28c14d3b1cd/global.go:42\
github.com/pingcap/pd/v4/client.(*client).tsLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:265"]
[2020/06/05 10:54:18.893 +08:00] [ERROR] [import.go:255] ["download file skipped"] [file="name:\"2_4_43_ac54fb69a845e5f8a19f1b37546e0d399924841e59119d78a7799b41b03914dd_write.sst\" sha256:\"\\220\\272=X\\372\\273\\022\\307y\\311X\\333v2\\332i\\013\\341 \\027\\240c\\276\\315B\\017A\\217\\370\\344\\266\\331\" start_key:\"t\\200\\000\\000\\000\\000\\000\\0006_r\\200\\000\\000\\000\\001\\036@U\" end_key:\"t\\200\\000\\000\\000\\000\\000\\0006_r\\377\\377\\377\\377\\377\\377\\377\\377\\000\" end_version:417155418796326913 crc64xor:5343193373669625115 total_kvs:1036787 total_bytes:77759025 cf:\"write\" size:47050462 "] [region="id:289 start_key:\"t\\200\\000\\000\\000\\000\\000\\000\\3776_r\\200\\000\\000\\000\\001\\377;\\312-\\000\\000\\000\\000\\000\\372\" end_key:\"t\\200\\000\\000\\000\\000\\000\\000\\3776_r\\200\\000\\000\\000\\001\\377I\\310e\\000\\000\\000\\000\\000\\372\" region_epoch:<conf_ver:5 version:47 > peers:<id:290 store_id:1 > peers:<id:291 store_id:2 > peers:<id:292 store_id:3 > "] [startKey=dIAAAAAAAAD/Nl9ygAAAAAH/HkBVAAAAAAD6] [endKey=dIAAAAAAAAD/Nl9y////////////AAAAAAD7] [error="range is empty"] [stack="github.com/pingcap/log.Error\
\t/go/pkg/mod/github.com/pingcap/log@v0.0.0-20200117041106-d28c14d3b1cd/global.go:42\
github.com/pingcap/br/pkg/restore.(*FileImporter).Import.func1\
\t/home/jenkins/agent/workspace/build_br_multi_branch_v4.0.0/go/src/github.com/pingcap/br/pkg/restore/import.go:255\
github.com/pingcap/br/pkg/utils.WithRetry\
\t/home/jenkins/agent/workspace/build_br_multi_branch_v4.0.0/go/src/github.com/pingcap/br/pkg/utils/retry.go:34\
github.com/pingcap/br/pkg/restore.(*FileImporter).Import\
\t/home/jenkins/agent/workspace/build_br_multi_branch_v4.0.0/go/src/github.com/pingcap/br/pkg/restore/import.go:208\
github.com/pingcap/br/pkg/restore.(*Client).RestoreFiles.func2\
\t/home/jenkins/agent/workspace/build_br_multi_branch_v4.0.0/go/src/github.com/pingcap/br/pkg/restore/client.go:493\
github.com/pingcap/br/pkg/utils.(*WorkerPool).Apply.func1\
\t/home/jenkins/agent/workspace/build_br_multi_branch_v4.0.0/go/src/github.com/pingcap/br/pkg/utils/worker.go:47"]
[2020/06/05 10:54:22.631 +08:00] [ERROR] [client.go:180] ["tso request is canceled due to timeout"] [stack="github.com/pingcap/log.Error\
\t/go/pkg/mod/github.com/pingcap/log@v0.0.0-20200117041106-d28c14d3b1cd/global.go:42\
github.com/pingcap/pd/v4/client.(*client).tsCancelLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:180"]
[2020/06/05 10:54:22.631 +08:00] [ERROR] [client.go:265] ["[pd] getTS error"] [error="rpc error: code = Canceled desc = context canceled"] [errorVerbose="rpc error: code = Canceled desc = context canceled\
github.com/pingcap/pd/v4/client.(*client).processTSORequests\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:301\
github.com/pingcap/pd/v4/client.(*client).tsLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:250\
runtime.goexit\
\t/usr/local/go/src/runtime/asm_amd64.s:1357"] [stack="github.com/pingcap/log.Error\
\t/go/pkg/mod/github.com/pingcap/log@v0.0.0-20200117041106-d28c14d3b1cd/global.go:42\
github.com/pingcap/pd/v4/client.(*client).tsLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:265"]
[2020/06/05 10:54:22.633 +08:00] [ERROR] [base_client.go:130] ["[pd] failed updateLeader"] [error="failed to get leader from [http://10.217.58.231:2379]"] [errorVerbose="failed to get leader from [http://10.217.58.231:2379]\
github.com/pingcap/pd/v4/client.(*baseClient).updateLeader\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/base_client.go:198\
github.com/pingcap/pd/v4/client.(*baseClient).leaderLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/base_client.go:129\
runtime.goexit\
\t/usr/local/go/src/runtime/asm_amd64.s:1357"] [stack="github.com/pingcap/log.Error\
\t/go/pkg/mod/github.com/pingcap/log@v0.0.0-20200117041106-d28c14d3b1cd/global.go:42\
github.com/pingcap/pd/v4/client.(*baseClient).leaderLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/base_client.go:130"]
[2020/06/05 10:54:22.802 +08:00] [ERROR] [base_client.go:130] ["[pd] failed updateLeader"] [error="failed to get leader from [http://10.217.58.231:2379]"] [errorVerbose="failed to get leader from [http://10.217.58.231:2379]\
github.com/pingcap/pd/v4/client.(*baseClient).updateLeader\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/base_client.go:198\
github.com/pingcap/pd/v4/client.(*baseClient).leaderLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/base_client.go:129\
runtime.goexit\
\t/usr/local/go/src/runtime/asm_amd64.s:1357"] [stack="github.com/pingcap/log.Error\
\t/go/pkg/mod/github.com/pingcap/log@v0.0.0-20200117041106-d28c14d3b1cd/global.go:42\
github.com/pingcap/pd/v4/client.(*baseClient).leaderLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/base_client.go:130"]
[2020/06/05 10:54:25.632 +08:00] [ERROR] [client.go:180] ["tso request is canceled due to timeout"] [stack="github.com/pingcap/log.Error\
\t/go/pkg/mod/github.com/pingcap/log@v0.0.0-20200117041106-d28c14d3b1cd/global.go:42\
github.com/pingcap/pd/v4/client.(*client).tsCancelLoop\
\t/go/pkg/mod/github.com/pingcap/pd/v4@v4.0.0-rc.1.0.20200511074607-3bb650739add/client/client.go:180"]