从大数据量 MySQL 迁移数据到 TiDB,有无可行方案。数据量较大,需要保证数据不丢失
先部署完成DM集群。
tiup dumpling -h ${ip} -P 3306 -u root -t 16 -r 200000 -F 256MiB -B my_db1 -f 'my_db1.table[12]' -o 's3://my-bucket/sql-backup'
[lightning]
# 日志
level = "info"
file = "tidb-lightning.log"
[tikv-importer]
# "local":默认使用该模式,适用于 TB 级以上大数据量,但导入期间下游 TiDB 无法对外提供服务。
# "tidb":TB 级以下数据量也可以采用 `tidb` 后端模式,下游 TiDB 可正常提供服务。关于后端模式更多信息请参阅:https://docs.pingcap.com/tidb/stable/tidb-lightning-backends
backend = "local"
# 设置排序的键值对的临时存放地址,目标路径必须是一个空目录,目录空间须大于待导入数据集的大小。建议设为与 `data-source-dir` 不同的磁盘目录并使用闪存介质,独占 IO 会获得更好的导入性能
sorted-kv-dir = "${sorted-kv-dir}"
[mydumper]
# 源数据目录,即第 1 步中 Dumpling 保存数据的路径。
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 必须正确填写,否则导入将出现异常。