课程名称:课程版本(301)+ 3.6.2 Data migration from MySQL(如何将数据从 MySQL 迁移到 TiDB)
学习时长:
7分钟
课程收获:
掌握数据迁移的具体操作和流程要求
通过Dumpling 导出mysql 的相关数据,然后使用 lightning 将相关的数据导入到 tidb
课程内容:
导入模式
- tikv - import 模式
- 数据导入过程中,不能对外提供服务,效率更高
- tidb - backend 模式
- 数据导入过程中,可以对外提供服务,效率较低
dumpling 需要有操作库相关的授权,例如
- select
- reload
- lock tables
- replication client
给root 用户进行授权
grant select,reload,lock tables,replication client on . to ‘root’@’%’;
flush privilieges;
如果导入的tidb 的版本小于 4.0,则需要手动的修改GC 的时间,如果大于4.0 则符合 自动调整GC 的规则
具体操作参考
update mysql.tidb set variable_value=‘10m’ where variable_name = ‘tikv_gc_life_time’;
注意事项
导入的数据量较大的时候,需要调整较大的Gc 时间,否则,无法完成导入,可能就被GC了
dumpling 参数说明
-
- -B 指定导出数据库
-
- -T 指定导出表
-
- -o 指定数据存储目录
-
- -F 指定单个文件最大的大小,默认单位是 MB
-
- -r 指定当个文件的最大记录数(行数)
-
- –filter 指定表过滤进行筛选
-
- –where 指定备份范围内的条件
命令行操作
nohup ./tidb-lightning - config tidb-lightning.toml > nohup.out &
最好使用脚本的方式启动
查看导入进程的导入状态
- 通过grep log 查阅 progress 关键字
- 通过 lightning monitor 查阅进度
学习过程中遇到的问题或延伸思考:
- 问题 1:
- 问题 2:
- 延伸思考 1:
- 延伸思考 2: