【TiDB 4.0 PCTA 学习笔记】- TIdb数据迁移工具介绍&如何将数据从 MySQL 迁移到 TiDB @3班+高龙

DAY13

TIdb数据迁移工具介绍

Dumpling

可以把tidb mysql数据导出为sql csv格式,可以完成逻辑上的完全备份或者导出

简介

Go开发的数据库备份工具

-help查看使用功能

使用dumpling时需要在已经启动的集群上执行导出命令

Dumpling包含在tidb-toolkit 安装包中

与mydumper相比的优点

  1. 支持导出多种数据形式,包括 SQL/CSV
  2. 支持全新的 table-filter,筛选数据更加方便
  3. 针对 TiDB 进行了更多优化:

支持配置 TiDB 单条 SQL 内存限制

针对 TiDB v4.0.0 以上版本支持自动调整 TiDB GC 时间

使用 TiDB 的隐藏列 _tidb_rowid 优化了单表内数据的并发导出性能

对于 TiDB 可以设置 tidb_snapshot 的值指定备份数据的时间点,从而保证备份的一致性,而不是通过 FLUSH TABLES WITH READ LOCK 来保证备份一致性。

TIDB Lighting

TiDB Lightning 是一个将全量数据高速导入到 TiDB 集群的工具

TiDB Lightning 有以下两个主要的使用场景:一是大量新数据的快速导入;二是全量备份数据的恢复。目前,Lightning 支持 Dumpling 或 CSV 输出格式的数据源。你可以在以下两种场景下使用 Lightning:

迅速导入大量新数据。

恢复所有备份数据。

架构:

https://docs.pingcap.com/zh/tidb/stable/tidb-lightning-overview

tidb自增ID不一定连续

DM2.0

iDB Data Migration (DM) 是一体化的数据迁移任务管理平台,支持从 MySQL 或 MariaDB 到 TiDB 的全量数据迁移和增量数据复制。使用 DM 工具有利于简化错误处理流程,降低运维成本。

介绍

https://docs.pingcap.com/zh/tidb-data-migration/stable/overview

如何将数据从mysql导入tidb

Lighting 有tidb-import模式和tidb-backend模式

tidb-import导入模式效率高 但是不提供对外访问

dumpling 需要有操作库相关的授权

select

reload

lock tables

replication client

tidb4.0以上版本gc时间自动修改,其他需要手动需改

dumpling参数中-F默认为M 可以接收8G等参数

lighting配置

将 [mydumper] 下的 data-source-dir 设置为 MySQL 的 SQL 文件路径。

[mydumper]

数据源目录

data-source-dir = “/data/export”

增加目标集群 TiDB 的配置。

[tidb]

目标集群的信息。tidb-server 的地址,填一个即可

host = “172.16.31.1”

port = 4000

user = “root”

password = “”

把 nohup 放到脚本里面

!/bin/bash

nohup ./tidb-lightning -config tidb-lightning.toml > nohup.out &

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

通过 grep 日志关键字 progress 查看进度,默认 5 分钟更新一次。

通过监控面板查看进度,具体参见 TiDB-Lightning 监控