从 SQL 文件迁移数据到 TiDB

从 SQL 文件迁移数据到 TiDB,目前数据已从MySQL导出为SQL文件

使用 TiUP 安装 TiDB Lightning:

  • 准备 SQL 文件:将所有 SQL 文件放到统一目录下
  • 定义目标表结构:使用 TiDB Lightning 创建表结构。
编写包含 DDL 语句的 SQL 文件:

文件名格式为 ${db_name}-schema-create.sql,其内容需包含 CREATE DATABASE 语句。
文件名格式为 ${db_name}.${table_name}-schema.sql,其内容需包含 CREATE TABLE 语句。

  • 新建配置文件新建文件 tidb-lightning.toml
[lightning]
# 日志
level = "info"
file = "tidb-lightning.log"

[tikv-importer]
# "local":默认使用该模式,适用于 TiB 级以上大数据量,但导入期间下游 TiDB 无法对外提供服务。
backend = "local"
# # "tidb":TiB 级以下数据量也可以采用 `tidb` 后端模式,下游 TiDB 可正常提供服务。关于后端模式更多信息请参考 https://docs.pingcap.com/zh/tidb/stable/tidb-lightning-backends 。
# 设置排序的键值对的临时存放地址,目标路径必须是一个空目录,目录空间须大于待导入数据集的大小。建议设为与 `data-source-dir` 不同的磁盘目录并使用闪存介质,独占 I/O 会获得更好的导入性能。
sorted-kv-dir = "${sorted-kv-dir}"

[mydumper]
# 源数据目录
data-source-dir = "${data-path}" # 本地或 S3 路径,例如:'s3://my-bucket/sql-backup'

[tidb]
# 目标集群的信息
host = ${host}                # 例如:172.16.32.1
port = ${port}                # 例如:4000
user = "${user_name}"         # 例如:"root"
password = "${password}"      # 例如:"rootroot"
status-port = ${status-port}  # 导入过程 Lightning 需要在从 TiDB 的“状态端口”获取表结构信息,例如:10080
pd-addr = "${ip}:${port}"     # 集群 PD 的地址,Lightning 通过 PD 获取部分信息,例如 172.16.31.3:2379。当 backend = "local" 时 status-port 和 pd-addr 必须正确填写,否则导入将出现异常。

  • 运行 tidb-lightning执行导入即可