从 SQL 文件迁移数据到 TiDB

    将所有 SQL 文件放到统一目录下,例如 或 s3://my-bucket/sql-backup?region=us-west-2。Lightning 将递归地寻找该目录下及其子目录内的所有 .sql 文件。

    要导入 TiDB,就必须为 SQL 文件提供表结构。

    如果使用 Dumpling 工具导出数据,则会自动导出表结构文件。此外,其他方式导出的数据可以通过以下任一方法创建表结构:

    • 方法一:使用 TiDB Lightning 创建表结构。

      • 文件名格式为 ${db_name}-schema-create.sql,其内容需包含 CREATE DATABASE 语句。
      • 文件名格式为 ${db_name}.${table_name}-schema.sql,其内容需包含 语句。
    • 方法二:手动在下游 TiDB 建库和表。

    新建文件 tidb-lightning.toml,包含以下内容:

    关于配置文件更多信息,可参阅 。

    运行 tidb-lightning。如果直接在命令行中启动程序,可能会因为 SIGHUP 信号而退出,建议配合 nohupscreen 等工具。

    1. export AWS_SECRET_ACCESS_KEY=${secret_key}
    2. nohup tiup tidb-lightning -config tidb-lightning.toml > nohup.out 2>&1 &

    同时,TiDB Lightning 还支持从 ~/.aws/credentials 读取凭证文件。

    导入开始后,可以采用以下任意方式查看进度:

    • 通过 grep 日志关键字 progress 查看进度,默认 5 分钟更新一次。
    • 通过监控面板查看进度,请参考 。
    • 通过 Web 页面查看进度,请参考 Web 界面

    导入完毕后,TiDB Lightning 会自动退出。查看日志的最后 5 行中会有 ,则表示导入成功。

    如果导入过程中遇到问题,请参见 。