br工具增量备份集恢复失败 [error="[ddl:1061]index already exist k_1"]

全量恢复成功,增量恢复失败,报错Error: [ddl:1061]index already exist k_1。
建表语句:
CREATE TABLE sctest1 (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
k int(10) unsigned NOT NULL DEFAULT ‘0’,
c char(120) NOT NULL DEFAULT ‘’,
pad char(60) NOT NULL DEFAULT ‘’,
PRIMARY KEY (id) /*T![clustered_index] CLUSTERED */,
KEY k_1 (k)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=1035594 |

br.log

查下数据库里面是不是已经有叫k_1的索引

k_1是这个表的索引,完全备份的时候就创建了

br的版本是多少?

也是6.1.0,特意拿的

增量是基于什么操作处理的呢?

你这增量恢复,恢复了sctest1的建表语句和建索引语句,但是建表语句已经建上索引了,所以建索引语句没法执行了?

使用br工具,基于上一次全量返回的tso

我的操作步骤:
1 建库test,库中建表sctest1,造数据,全量备份

2 建库test1,库中建表sctest1,造数据,增连备份

3 恢复全量,成功,再恢复增量,失败
(建表和造数据用的是sysbench)

全量恢复之后,表信息,索引信息,数据都完全建立成功了

增量此时的恢复操作,如果包含了完整的建表信息和完整的索引信息,肯定会失败的…

因为表和索引,都已经存在了…

你想要的功能,在 7.1 之后才会有…

https://docs.pingcap.com/zh/tidb/stable/br-checkpoint-restore

是在原集群中进行恢复的吗?得在空的集群或者不存在数据冲突(相同 schema 或 table)的集群执行快照备份恢复。

可是恢复不就应该是先恢复完全,再恢复增量吗,这岂不是没法恢复增量了。
这个ifexists是已存在的表会跳过恢复,那如果增量备份里有对这个表的修改,那这个表不就没恢复这部分改动

你是空库恢复吗?如果是空库不应该有你说的问题。
再就是可以具体发现怎么做全量和增量备份的,是不是操作有问题

所以文档里面写了警告了嘛,不建议在生产环境中使用~ :slightly_smiling_face:

注意事项也有,没考虑过,不就得踩坑…

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