为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
-
【TiDB 版本】:
旧的版本是v3.0.1 按照在google cloud的kubernetes里面
新的版本是v4.0.7 安装在aws的eks 集群里面,只有basic-pd basic-tidb basic-tikv 节点
-
【问题描述】:
数据大约有2TB左右,最大单个表的数量在10亿条左右.
目前导出数据很慢,导入数据更慢。
一开始使用的是mydumper/loader,导出数据花了大约1个晚上,生产系统里面停了一晚上。导入数据loader就太慢了,一天没完成,后放弃。然后在折腾tidb-lightning。
1.有什么快速导入导出的解决方案。
2.导出数据后,再导入数据,原来的生产系统里面又添加/删除了新的数据,这新的数据要怎么处理。有没有不停机,或少停机的解决方案。
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
来了老弟
2
可以选择在线升级 v3.0.1 集群到 4.0
这个v3.0.1是生产环境的,安装在google cloud kubernetes上,没有把握保证升级成功。担心会把生产环境给搞挂。
来了老弟
4
你好,
根据目前的数据量和迁移速度, 可以看下下面的方案:
-
建议在现有集群扩容 tidb-binlog 组件,
https://docs.pingcap.com/zh/tidb/v3.0/tidb-binlog-overview
-
可以将 mydumper 换成 dumpling, dumpling 有自适应 gc 可以保证完整备份, 并将 tidb gc 调整为 72h(大于 dumpling 的备份时长, 此操作为了使用 tidb-binlog 组件, 将增量的数据导入到 4.0 集群中), 导出格式为 CSV, 注意导出线程, 别影响线上业务.
https://docs.pingcap.com/zh/tidb/stable/dumpling-overview#相比于-mydumperdumpling-有哪些改进之处
-
将 dumpling 数据使用 lightning-importer 导入 tidb v4.0, 成功后, 对全量数据进行一致性验证, 将 metadata 文件中的内容写入 drainer, 完成增量同步配置, 观察一段时间后, 对增量数据进行一致性验证
https://docs.pingcap.com/zh/tidb/v3.0/tidb-binlog-configuration-file#initial-commit-ts
-
观察 4.0 集群状态, 后面待时机合适, 切换数据源,
方案优点
- Lightning-Importer CSV 模式导入理论上速度更快
- Dumpling 自适应 GC 减少导出失败风险
- tidb-binlog 的引入, 解决增量同步问题
来了老弟
6