从 MySQL SQL 文件迁移数据
本文介绍如何使用 TiDB Lightning 从 MySQL SQL 文件迁移数据到 TiDB。关于如何生成 MySQL SQL 文件,可以参考 Mydumper 或者 Dumpling 文档。
第 1 步:部署 TiDB Lightning
使用 Lightning 将数据导入 TiDB,Lightning 具体的部署方法见 TiDB Lightning 部署。
注意:
- 如果选用 Importer Backend 来导入数据,除需要部署 TiDB Lightning 组件外,也需要部署 TiKV Importer 组件。导入期间集群无法提供正常的服务,速度更快,适用于导入大量的数据(TB 以上级别)。
- 如果选用 TiDB Backend 来导入数据,只需要部署 TiDB Lightning 组件。导入期间集群可以正常提供服务。
- 二者的具体差别参见 TiDB Lightning Backend。
第 2 步:配置 TiDB Lightning 的数据源
本文以选用 TiDB Backend 导入数据为例。增加 tidb-lightning.toml 配置文件
,在文件中添加以下主要配置:
将
[mydumper]
下的data-source-dir
设置为 MySQL 的 SQL 文件路径。[mydumper]
# 数据源目录
data-source-dir = "/data/export"
注意:
如果下游已经存在对应的 schema,那么可以设置
no-schema=true
来跳过 schema 创建的步骤。增加目标集群 TiDB 的配置。
[tidb]
# 目标集群的信息。tidb-server 的地址,填一个即可
host = "172.16.31.1"
port = 4000
user = "root"
password = ""
其它配置参考 TiDB Lightning 配置。
第 3 步:开启 TiDB Lightning 进行数据导入
运行 TiDB Lightning。如果直接在命令行中用 nohup
启动程序,可能会因为 SIGHUP 信号而退出,建议把 nohup
放到脚本里面,如:
# !/bin/bash
nohup ./tidb-lightning -config tidb-lightning.toml > nohup.out &
导入开始后,可以采用以下两种方式查看进度:
- 通过
grep
日志关键字progress
查看进度,默认 5 分钟更新一次。 - 通过监控面板查看进度,具体参见 TiDB-Lightning 监控。