TiDB(6):数据迁移-TiDB Lightning

1 TiDB Lightning介绍

TiDB Lightning 是一个将全量数据高速导入到 TiDB 集群的工具,目前支持 Mydumper 或 CSV 输出格式的数据源。你可以在以下两种场景下使用 Lightning:

迅速导入大量新数据。

备份恢复所有数据。

TiDB Lightning 主要包含两个部分:

(1)tidb-lightning(“前端”):主要完成适配工作,通过读取数据源,在下游 TiDB 集群建表、将数据转换成键/值对 (KV 对) 发送到 tikv-importer、检查数据完整性等。

(2)tikv-importer(“后端”):主要完成将数据导入 TiKV 集群的工作,把 tidb-lightning 写入的 KV 对缓存、排序、切分并导入到 TiKV 集群。

2 准备迁移工具

首先用过一下地址下载工具

wget https://download.pingcap.org/tidb-enterprise-tools-latest-linux-amd64.tar.gz

wget https://download.pingcap.org/tidb-toolkit-latest-linux-amd64.tar.gz

3 准备MySQL数据

CREATE DATABASE mytest;
USE mytest;

CREATE TABLE mytest.t1 (
	id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
	c CHAR (32),
	PORT INT
);

insert into t1 values (),(),(),(),(),(),(),();
        insert into t1 (id) select null from t1;
        insert into t1 (id) select null from t1;
        insert into t1 (id) select null from t1;
        insert into t1 (id) select null from t1;
        insert into t1 (id) select null from t1;
        update t1 set c=md5(id), port=@@port;

CREATE TABLE mytest.t2 (
	id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
	c CHAR (32),
	PORT INT
);

insert into t2 values (),(),(),(),(),(),(),();
        insert into t2 (id) select null from t2;
        insert into t2 (id) select null from t2;
        insert into t2 (id) select null from t2;
        insert into t2 (id) select null from t2;
        insert into t2 (id) select null from t2;
        update t2 set c=md5(id), port=@@port;

4 导出数据

mkdir -p /data/my_database/

cd  /home/tidb-enterprise-tools-latest-linux-amd64/bin

./mydumper -h 192.168.222.132 -P 3306 -u root -p 123456 -t 16 -F 256 -B mytest -T t1,t2 --skip-tz-utc -o /data/my_database/

cd /data/my_database

其中:

  • -B mytest :从 mytest 数据库导出。
  • -T t1,t2:只导出 t1 和 t2 这两个表。
  • -t 16:使用 16 个线程导出数据。
  • -F 256:将每张表切分成多个文件,每个文件大小约为 256 MB。
  • --skip-tz-utc:添加这个参数则会忽略掉 TiDB 与导数据的机器之间时区设置不一致的情况,禁止自动转换。

这样全量备份数据就导出到了/data/my_database目录中。

5 启动tikv-importer

cd /home/tidb-toolkit-latest-linux-amd64/bin

修改配置文件

vim tikv-importer.toml

# TiKV Importer 配置文件模版

# 日志文件。
log-file = "tikv-importer.log"
# 日志等级:trace、debug、info、warn、error、off。
log-level = "info"

[server]
# tikv-importer 监听的地址,tidb-lightning 需要连到这个地址进行数据写入。
addr = "192.168.222.136:8287"

[import]
# 存储引擎文档 (engine file) 的文件夹路径。
import-dir = "/mnt/ssd/data.import/"

启动tikv-importer

nohup ./tikv-importer -C tikv-importer.toml > nohup.out &

6 启动tidb-lightning

启动命令比较复杂,建议使用脚本,如下:

vim run.sh

脚本内容如下

#!/bin/bash
nohup ./tidb-lightning \
            --importer 192.168.1.101:8287 \
            -d /data/my_database/ \
            --pd-urls 0.0.0.0:2379 \
            --tidb-host 192.168.1.101 \
            --tidb-user root \
            --log-file tidb-lightning.log \
        > nohup.out &

修改脚本权限

chmod 755 run.sh

启动脚本

./run.sh

这是去查看TiDB,发现mysql中指定的数据已经全部同步到TiDB中

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/35941.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

路由的介绍

目录 路由器的转发原理:路由表 路由——指示路由器去往未知网段的方法 路由器的转发原理:路由表 当一个数据包来到路由器,路由器将基于数据包中的目标IP地址查询自身的路由表,如果路由表中有相应的记录,则无条件根据…

VMware16.0安装教程和创建

许可证: ZF3R0-FHED2-M80TY-8QYGC-NPKYFYF390-0HF8P-M81RQ-2DXQE-M2UT6ZF71R-DMX85-08DQY-8YMNC-PPHV8设置网络 添加镜像 下载centos7镜像网址https://mirrors.aliyun.com/centos/7/isos/x86_64/?spma2c6h.25603864.0.0.d7724511YPrZpg win10镜像地址https://ww…

【Spring boot+VUE2+Android 7.1】智慧校园源码

一、智慧校园实现了智慧校园基础数据的统一管理,通过此平台提供教师基础信息管理、学生基础信息管理、用户认证管理、权限管理、资源管理、应用管理、第三方应用接入等基础功能与服务。 二、源码包含:电子班牌管理系统、成绩管理系统、考勤人脸刷卡管理系…

总结STM32嵌入式面试知识点

一、STM32F1和F4的区别? 内核不同:F1是Cortex-M3内核,F4是Cortex-M4内核;主频不同:F1主频72MHz,F4主频168MHz;浮点运算:F1无浮点运算单位,F4有;功能性能&…

MySQL之数据库引擎详解(内附面试题:InnoDB和MyISAM的联系与区别)

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于MySQL数据库引擎的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一. 数据库引擎是什么&#xff…

LinuxCP插件virtio与内核vhost

以下为LCP创建的接口对,VPP侧为物理接口port7,映射到Linux侧的为虚拟接口hostap1,接口hostap1作为vhost的后端存在。VPP侧接口tap1为前端的virtio接口。 vpp# show lcp itf-pair: [0] port7 tap1 hostap1 24 type tap vdp# vdp# show interf…

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(7 月 3 日论文合集)

文章目录 一、分割|语义相关(4篇)1.1 SPAE: Semantic Pyramid AutoEncoder for Multimodal Generation with Frozen LLMs1.2 Achieving RGB-D level Segmentation Performance from a Single ToF Camera1.3 Topological Data Analysis Guided Segment Anything Model Prompt Op…

双非本大二上岸大厂——念念不忘,必有回响

⭐️前言⭐️ 博主就读于一所普通的学校(双非本),在大二下学期3月份开始网上投递简历,历时近百余天,投递简历500,面试近40余场,最终在6月份学期末,斩获了两个大厂offer(北…

开发框架前后端分离的好处是什么

关于将前端和后端保持在一起或分开,存在广泛的意见分歧。唯一重要的是,这两个组件对于开发成熟的应用程序都是必需的。 考虑:紧密耦合的前端和后端 许多人认为后端和前端的分离是一个坏主意,这两个角色之间没有太大区别。 以下…

MySQL-SQL存储过程/触发器详解(下)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

计算机体系结构基础知识介绍之缓存性能的十大进阶优化之编译器优化和硬件预取(六)

优化七:编译器优化,降低miss率 处理器和主内存之间不断扩大的性能差距促使编译器编写者仔细检查内存层次结构,看看编译时优化是否可以提高性能。再次,研究分为指令缺失的改进和数据缺失的改进。接下来介绍的优化可以在许多现代编…

【图像识别】openCV基础知识

图像处理基础 一、使用OpenCV前要准备的工作1.先导入需要用到的库2.自定义,图片展示函数 二、开始学习常用函数1.生成随机整数①. 函数说明②.代码a. 二维灰度图b. 三维彩色图 ③.代码现象a. 二维灰度图b. 三维彩色图 2.通道的分离与合并①先导入一张图片② 将其RGB…

Python获取指定路径下所有文件的绝对路径

import osdef get_file_path_by_name(file_dir, format.JPG):获取指定路径下所有文件的绝对路径:param file_dir::return:L []for root, dirs, files in os.walk(file_dir): # 获取所有文件for file in files: # 遍历所有文件名if os.path.splitext(file)[1] format: L.ap…

typeScript(持续吐血版)

typeScript-02-进阶(TSVue3) 结合vue3来使用TypeScript 使用vite来创建vue3TS的项目 使用vite创建项目,并选择带ts的版本 npm create vitelatest my-vue-ts-app – --template vue-ts 参考链接:https://vuejs.org/guide/typescript/composition-api…

深度学习基础

1 机器学习、深度学习、人工智能 1.1 机器学习 机器学习是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身性能的学科。 基本步骤:获取数据、数据预处理、特征提取、特征选择…

FFmpeg5.0源码阅读—— avcodec_send_packetavcodec_receive_frame

摘要:本文主要描述了FFmpeg中用于解码的接口的具体调用流程,详细描述了该接口被调用时所作的具体工作。   关键字:ffmpeg、avcodec_send_packet、avcodec_receive_frame   读者须知:读者需要了解FFmpeg的基本使用流程&#xf…

MySQL 主从复制[异步 同步 半同步复制] 读写分离 优化 (非常重要)

MySQL 主从复制 1、什么是读写分离? 读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据…

计算机网络概述(三)

常见的计算机网络体系结构 OSI体系结构: 物理层→数据链路层→网络层→运输层→会话层→表示层→应用层 TCP/IP体系结构: 网络接口层→网际层→运输层→应用层 一般用户的设备都有TCP/IP协议用于连接因特网,TCP/IP的网络接口层并没有规定使用…

【Redis】秒杀业务设计、悲观锁与乐观锁

1 全局ID生成器 一些情境下,使用数据库的ID自增将会产生一些问题。 一方面,自增ID规律性明显,可能被猜测出来并产生一些漏洞另一方面,当数据量很大很大很大时,单表数据量可能会受到限制,需要分表&#xf…

网络编程5——TCP协议的五大效率机制:滑动窗口+流量控制+拥塞控制+延时应答+捎带应答

文章目录 前言一、TCP协议段与机制TCP协议的特点TCP报头结构TCP协议的机制与特性 二、TCP协议的 滑动窗口机制 三、TCP协议的 流量控制机制 四、TCP协议的 拥塞控制机制 五、TCP协议的 延时应答机制 六、TCP协议的 捎带应答机制 总结 前言 本人是一个普通程序猿!分享一点自己的…