【TiDB 4.0 PCTA 学习笔记】-3.6.2 Data migration from MySQL(如何将数据从 MySQL 迁移到 TiDB) @3班+张近博

课程名称:课程版本(301)+ 3.6.2 Data migration from MySQL(如何将数据从 MySQL 迁移到 TiDB)

学习时长:8分钟

课程收获:学习了通过dumpling导出数据并由lightning导入数据

课程内容:

1.Dumpling导出数据
1) 需要对应的数据库权限
2)SELECT,RELOAD,LOCK TABLES,REPLICATION CLIENT
grant select,reload,lock tables,replication client on . root@’%’;
flush privileges;
3) 调整GC时间, 4.0版本会自动延长GC时间,但是如果版本小于4.0,需要如下操作
数据量很大的话,先修改一个比较长的时间
update mysql.tidb set VARIABLE_VALUE = ‘720h’ where VARIABLE_NAME = ‘tikv_gc_life_time’;
完成后,修改会默认值10m
4)导出SQL文件命令
dumpling -root -P 4000 -h 127.0.0.1 -p $password -filetype sql -threads 32 -o /tmp/test/ -F 256
其他导出参数:
-B 指定导出的数据库名
-T 指定导出的数据库表
-o 选择导出数据的存储路径
-F 导出单个文件的最大大小,模式单位是兆(MiB),支持类似5GiB或者8KB的输入
-r 导出单个文件的最大记录数
–filter 通过表过滤筛选特定的库表
–where 通过where条件限定表备份的数据内容
2.Lightning数据导入
Lightning ansible部署:
修改部署配置文件
[lightning_server]
192.168.20.10
tikv_importer:
backend:“tidb” #<-change to “tidb”
部署命令
ansible-playbook bootstrap.yml &&
ansible-playbook deploy.yml
配置tidb-lightning.toml
1)设置数据源目录
[mydumper]
#datasource dir
data-source-dir="/data/export"
2)添加目标TiDB集群的信息
[tidb]
host = “172.16.31.1”
port = 4000
user = “root”
password = “”
3)用nohup模式执行命令,放到脚本文件中执行
nohup ./tidb-lightning -config tidb-lightning.toml > nohup.out &
查看进度可以通过grep log关键字来看进度或者通过查看面板

学习过程中参考的其他资料