使用BR备份恢复需要改表名问题

【 TiDB 使用环境`】生产
【 TiDB 版本】5.4.0
【遇到的问题】
【复现路径】备份恢复br restore时只能恢复原库名原表名,现在需要改库名表名恢复
【问题现象及影响】
现在实现起来需要额外一套tidb,实际上只是需要昨天的一个一致性备份的表恢复到原业务库改个名而已。
官方对此有方案我们不知道吗?还是没有?没有是否有计划下一步提供相关参数恢复呢

BR是物理备份恢复,这种方式通常无法直接改表名或者库名。数据量不是太大的话可以考虑下逻辑备份,可以编辑sql文件。我们还原一致性备份的表恢复到原业务库是先全量还原到一个临时实例,然后单独将需要的表或者库导入到目标库里,将这个步骤集成到自动化平台里。可以参考下这个方案。

1 个赞

建议将BR 备份文件恢复到测试环境中 让后对需要表进行dumping 导出为sql后insert 到业务表 到业务表使用insert 相对安全一些

弄个临时环境腾挪一下。

后面就是数据量会比较大,导出导入会比较慢。这个需求类似oracle的impdp功能的remap_schema/remap_table参数。看看能否支持。如果两亿数据需要导很久。

现在就是这样的。期望是可以直接原库实现。

目前暂时不提供 restore 过程中更改表名的功能,技术上我们讨论一下。
TiKV 是以 key-value 存储的数据,其中 key 是包含了表名信息的。这个改动需要 rewrite 所有的 key.

2 个赞

这个功能希望以后可以实现,至少可以修改数据库名称,我觉得这样还是有很多场景使用到的。

2 个赞

库名是当前也不可以改吗

BR 暂不支持异构恢复,可以恢复后业务接入前进行改表名的操作。

现在还不行,以后是否支持,还没有计划。
虽然代码层面上,看起来实现难度不是特别大。但是主要有两个方面的考虑:

  1. 目前我们主要聚集在新方案-降备份和恢复影响上。
  2. 恢复过程中,改表名, 删数据,可能会增加恢复过程对原集群的影响 (GC压力)。这块可能需要大量测试和方案评估。

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