D14 - 转移资料到TiDB工具介绍(一)

在安装完TiDB之後,想先从现有的MySQL资料库倒一张表的资料来试试。
TiDB提供两种的资料导出工具Dumpling+Lightning与DM。
当原始资料表大於1T,要用前者做资料转移。如果资料小於1T,可以用DM这个工具来完成全量以及增量备份。

Dumpling,使用go开发的程序,可以把资料导出成SQL或者CSV。
首先透过tiup安装dumpling
tiup install dumpling
接着在来源MySQL资料库建立一个帐号
create user 'tidb_rep'@'tiup的机器网段' IDENTIFIED BY '密码自己想';
给这个帐号以下权限
GRANT SELECT, RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'tidb_rep'@'ip'
假设我今天要搬移的是test.tidb_test这张表,存有两笔资料。
https://ithelp.ithome.com.tw/upload/images/20210909/20113220SyohNR1N0i.png
接着到tiup这台机器找到dumpling的位置,我的安装路径为/root/.tiup/components/dumpling/v5.2.0
然後把参数带进去,这边我只简单的操作一下,有其他需要可以--help看一下指令说明。
./dumpling -u"tidb_rep" -P3306 -p"我是密码" -h"MySQL机器IP" -B"test" -T "test.tidb_test"
执行完毕後,会产生一个时间戳记的资料夹,包含四个档案,分别纪录操作的起始结束时间以及master binlog的位置,建立资料库的语法,建立表的语法,最後是资料写入的语法。
https://ithelp.ithome.com.tw/upload/images/20210909/20113220T5fRlVrMNC.png


接着用lightning导入
首先下载安装lighting,下载目前最新版的5.2.0解压缩。主要需要资料夹内的tidb-lightning。
https://download.pingcap.org/tidb-toolkit-v5.2.0-linux-amd64.tar.gz
tar zxvf tidb-toolkit-v5.2.0-linux-amd64.tar.gz

接着配置 tidb-lightning.toml,范本可在官网上找到。我们先为sorted-kv-dir新增资料夹,另外把data-source-dir改成上面dumpling产出的资料夹位置,以及tidb&pd的ip改成自己的。

[lightning]

# 转换数据的并发数,默认为逻辑 CPU 数量,不需要配置。
# 混合部署的情况下可以配置为逻辑 CPU 的 75% 大小。
# region-concurrency =

# 日志
level = "info"
file = "tidb-lightning.log"

[tikv-importer]
# backend 设置为 local 模式
backend = "local"
# 设置本地临时存储路径
sorted-kv-dir = "/var/lib/tmp-dir"

[mydumper]
# 源数据目录。
data-source-dir = "/root/.tiup/components/dumpling/v5.2.0/export-2021-09-09T07:55:05Z"

[tidb]
# 目标集群的信息。tidb-server 的监听地址,填一个即可。
host = "10.102.1.92"
port = 4000
user = "root"
password = ""
# 表架构信息在从 TiDB 的“状态端口”获取。
status-port = 10080
# pd-server 的地址,填一个即可
pd-addr = "10.102.1.92:2379"

然後输入以下指令执行

./tidb-toolkit-v5.2.0-linux-amd64/bin/tidb-lightning -config tidb-lightning.toml

检查结果 错误!! 不允许来源档和执行的暂存档位置相同...
https://ithelp.ithome.com.tw/upload/images/20210909/20113220YopM7gfx22.png
可以依照他的检查结果做修改,或者偷吃步直接skip。
./tidb-toolkit-v5.2.0-linux-amd64/bin/tidb-lightning -config tidb-lightning.toml --check-requirements=false
完成汇入之後到tidb看看有没有正常建立,结果成功!
https://ithelp.ithome.com.tw/upload/images/20210909/20113220pl7KYewtob.png


<<:  Angular 深入浅出三十天:表单与测试 Day07 - 整合测试实作 - 登入系统 by Template Driven Forms

>>:  Day7 - 什麽是Snapshot及如何使用

透过机器学习审查合约书的4个优点

根据《哈佛商业评论》分享的一项报告数据,“低效率的合约管理流程会导致公司在特定交易中损失 5% 到 ...

【必收藏系列】查找并清理 Mac 上重复的档案/图片

日常我们在使用 Mac 机时,总是很容易重复下载一些档案或图片,例如 复制整理档案或移动档案时,很容...

前言 | ML#Day1

AI和资料科学在最近几年是非常火红的话题,日常已经可以随处可见各种广告或者企业将AI挂在嘴边,声称其...

Base64

即使HTTP基本身份验证确实使用Base64来编码用户ID和密码,HTTP仍以明文形式传输编码,并依...

Day 8: jest-dom

Jest-Dom 以及接下来的主角React-Testing-Library 在做测试时,我们需要针...