【TiDB 使用环境】生产环境 /测试环境
【TiDB 版本】v5.2.3
【TiDB-Lightning 版本】v5.2.3
【遇到的问题:问题现象及影响】
lightning使用local物理导入的方式,有要求目标表为空的前提,比如导入表A,目标端表A为空,但是目标库还有其他10张有数据的表,会被影响吗?
1 个赞
除了资源竞争,其他的应该没啥影响
2 个赞
只要目标表 A 为空 ,目标库中其他的 10 张有数据的表是安全的,不会被删除或覆盖. 在 Local 模式下,Lightning 绕过 TiDB 层,直接生成 KV 数据并写入 TiKV, 生成的键值对(Key-Value)只包含你正在导入的那个表的数据,因此不会产生删除其他表数据的指令
2 个赞
如果表 A 中有任何数据(哪怕只有一行),或者有未清理的残留元数据,Lightning 都会报错并停止任务,以防止数据重复
1 个赞
不会对目标库中其他已有数据的表造成直接的、破坏性的影响(数据不会丢失、不会被篡改),但会产生一定的集群资源压力影响,可能导致其他表的读写延迟短暂升高。
2 个赞
业务数据方面应该不会有影响
1 个赞
- 版本匹配:TiDB 集群版本与 TiDB Lightning 版本必须完全一致(如用户场景中均为 v5.2.3,符合要求)。
- 目标表约束:待导入的目标表必须为空,且表结构需提前在 TiDB 中创建(物理模式不支持自动建表,需手动或通过 DDL 文件预创建表结构)。
- 权限要求:执行 Lightning 的用户需拥有 TiDB 的
SUPER、INSERT、ALTER权限,同时需具备本地数据源文件的读写权限。 - 存储介质:导入的数据源(如 SQL dump、Parquet 文件)需存储在 Lightning 所在机器的本地磁盘(Local 模式核心是读取本地数据),且磁盘剩余空间需大于数据源体积。
- 集群状态:TiDB 集群需正常运行,TiKV 节点的剩余存储空间需满足导入数据的容量需求,且集群未处于高负载状态(避免导入引发性能过载)。
- 配置要求:Lightning 配置文件中需指定
backend = "local",同时正确配置 TiDB、TiKV 的连接地址及数据文件路径。
1 个赞
OK明白了,总结下来就是对目标表有影响,对其他表没有影响,然后再影响目标集群的负载情况
只影响被导入的表
可以做TB 级别的数据迁移吗?
不会对目标库中其他非导入表产生任何影响
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。

