使用br备份后恢复数据报错ErrRestoreNotFreshCluster

tidb版本7.10 ,数据库里面的数据都是用dm工具mysql 同步过来的
步骤:新建了3个数据库名字为 han_xxxx格式,每个库中建了一个表插入了一条数据。使用br backup full进行备份,恢复的时候报错[BR:Restore:ErrRestoreNotFreshCluster]cluster is not fresh
#备份的命令
tiup br backup full --pd “172.16.0.26:2379” --filter “han_.” --storage “local:///tidb/backup/han-date +%Y-%m-%d ” --log-file backup.log
#使用恢复的命令
tiup br restore full --pd “xxx:2379” --filter ‘han*.*’ --storage “local:///tidb/backup/test-date +%Y-%m-%d” --log-file restore.log

报错:
the target cluster is not fresh, cannot restore.
you can drop existing databases and tables and start restore again

有大佬知道怎么解决嘛

br恢复需要目标database和表不存在。。。

表和数据库不是空的,已经有数据了

BR工具在执行恢复工作时,要求目标集群没有相关的库表才行,这是为了避免覆盖已有数据的情况。

所以,如果用BR恢复时,管理员要先保证是新集群或者足够“干净”,不会有相同库表存在

1 个赞

这个需要清理一下,再弄

看截图 br 是 7.3 ?

https://docs.pingcap.com/zh/tidb/dev/release-7.3.0#行为变更

全量恢复前增加了空集群检查,默认不支持恢复到非空集群。如果强制恢复,可以使用 --filter 指定对应表名。

看来您已经去看过源码仓库了,并且提了issue,BR:Restore:ErrRestoreNotFreshCluster · Issue #1489 · pingcap/br · GitHub

那么进一步起是就能找到这个报错逻辑是从哪来的了

https://github.com/pingcap/tidb/pull/45014/files

我加了 -f 'han_*'恢复也还会匹配到其他没有备份的库 :sob:

tiup br restore full
把full改成db试一下看看。

也不行啊哥。

这不是提示有变化了么。filter可以去掉了。 :joy:


去掉了…昨天也试过

单个库恢复时可以的,恢复的时候如果一次性恢复多个库就报错…

#备份的命令
tiup br backup db --pd “xxx:2379” --db “han*” --storage “local:///tidb/backup/test-date +%Y-%m-%d ” --log-file test.log

这个命令能备份所有的 han.xxxx 的库么?理解得不对吧,,呵呵,


好好看看文档先…

我打错了,备份的命令用的这个
tiup br backup full --pd “172.16.0.26:2379” --filter “han_*.*” --storage “local:///tidb/backup/han-date +%Y-%m-%d” --log-file backup.log
抱歉抱歉,

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