使用BR恢复数据库时报failed to validate checksum异常

使用tiup playground命令在本地启用了一个数据库集群,在test库重创建了表table1并插入了3条数据,使用br备份成功:

[root@localhost bin]# ./br backup full --pd “127.0.0.1:2379” -s “local://tmp/backup” --log-file backupfull.log
Detail BR log in backupfull.log
Full backup <------------------------------------------------------------------------------------------------------------------------> 100.00%
Checksum <---------------------------------------------------------------------------------------------------------------------------> 100.00%
[2021/01/11 02:04:07.984 -05:00] [INFO] [collector.go:60] [“Full backup Success summary: total backup ranges: 1, total success: 1, total failed: 0, total take(Full backup time): 12.029496ms, total take(real time): 98.268306ms, total size(Byte): 87, avg speed(Byte/s): 7232.22, total kv: 3”] [“backup checksum”=2.561914ms] [“backup fast checksum”=181.694µs] [“backup total regions”=1] [BackupTS=422143235961126913] [Size=2857]

继续往table1中插入了3条数据,接着使用br命令进行还原:

[root@localhost bin]# ./br restore full --pd “127.0.0.1:2379” -s “local://tmp/backup” --log-file restorefull.log
Detail BR log in restorefull.log
Full restore <-----------------------------------------------------------------------------------------------------------------------> 100.00%
Error: failed to validate checksum: [BR:Restore:ErrRestoreChecksumMismatch]restore checksum mismatch

报上面的异常,日志文件内容:log.txt (15.9 KB)

目前 BR 不支持在线导入的,另外建议使用 TiUP 部署完整集群试一下,Playground 只是体验版,默认版本会是 Nightly 版本,可能会有非预期的结果。

不支持在线导入的意思是在执行恢复前要把集群停掉吗

大致梳理了下过程

  • 1.test 库建表插入数据
  • 2.备份
  • 3.在表中插入 3 条数据
  • 4.在原环境中进行数据还原

如果是上述过程,你这边属于在线恢复,请按照官网进行操作,注意,在线恢复属于实验特性。

另外没有看到你这边有删除操作,如果是恢复操作,需要确认 运行 br restore 前检查新集群确保没有同名的表。
image

建议按照官网示例操作进行。
https://docs.pingcap.com/zh/tidb/stable/backup-and-restore-tool

1赞