TiDB 备份还原如何指定目标数据库

【 TiDB 使用环境`】 生产环境 【 TiDB 版本】 v4.0.12 【遇到的问题】 1.使用 dumpling 进行【数据单表】的逻辑备份,备份数据中包含了数据库+数据表的创建语句; 2.使用tidb-lightning 时需要指定备份目录进行还原,还原时会把数据库+数据表创建一遍; 3.现在是想还原时,不用原来的数据库,而是指定另一个数据库该如何进行操作?

和mysql 一样。如果你想换数据库,dumpling导出之后,把create database 的schema中的数据库修改成你想要的试试。

修改导出的元数据文件metadata,或者手工创建一个数据库。

提供一个思路,是否可以还原之后,通过rename设置为新的数据库名

感谢大佬的支持,这个好像不大行,在tidb中使用rename报错呢

不直接支持rename数据库名,可以用小王同学的小技巧来实现

哦,明白了,就是相当于把表转移到另一个库中了

嗯嗯,是的

大佬,这个好像没有效果,执行没有报错,但是恢复的时候并没有创建新的数据库,也没有对应的表

请问这个metadata中只有基本的时间点的数据,该如何修改这个呢?
image

不用这么麻烦 lightning 提供了 这个功能 [[routes]] schema-pattern = “test*” target-schema = “test1”

您好,请问这个配置有对tidb-lightning 的版本要求吗,我看官方的文档中没有提到这个配置项呢

没有版本要求,4版本就有了 一般有两种办法操作 方法一、利用lighting的路由功能

https://docs.pingcap.com/zh/tidb/v4.0/tidb-lightning-backends#从-loader-迁移到-tidb-lightning-tidb-backend

方法二、通过mv和sed更改文件名和文件内容

感谢技术支持,我去找个表测试一下

一般逻辑备份还是可以修改create database语句吧

对,可以直接修改这个语句,但是再还原的时候,对数据没有起作用

直接还原后,rename table a.a to b.a ;拼个语句rename下

没起作用是报啥错误吗?

没有报错,数据库是正常创建了,但是数据还是恢复到了原来的数据库中,与新建的这个没有任何的关系。

嗯,这是个办法,但是还是得还原后手动操作一遍。我想的是,恢复的时候直接指定到另一个库中