TiDB-从0到1-数据导出导入

在这里插入图片描述

TiDB从0到1系列

  • TiDB-从0到1-体系结构
  • TiDB-从0到1-分布式存储
  • TiDB-从0到1-分布式事务
  • TiDB-从0到1-MVCC
  • TiDB-从0到1-部署篇
  • TiDB-从0到1-配置篇
  • TiDB-从0到1-集群扩缩容

一、数据导出

TiDB中通过Dumpling来实现数据导出,与MySQL中的mysqldump类似,其属于逻辑备份,备份出的文件格式为SQL或CSV。
同样与MySQL中的mysqldump应用场景类似,Dumping最好使用于对小规模的数据备份(导出)

二、Dumpling实操

1、下载安装

wget https://download.pingcap.org/tidb-community-toolkit-v7.5.1-linux-amd64.tar.gz
------
tar -xvf tidb-community-toolkit-v7.5.1-linux-amd64.tar.gz

2、解压需要的工具包
在这里插入图片描述

tar xvf dumpling-v7.5.1-linux-amd64.tar.gz

2、权限控制
使用dumpling的用户需要有对应的权限

  • select
  • reload
  • lock tables
  • replication client
  • process

3、参数

./dumpling --help
-----------------
Flags:--allow-cleartext-passwords         Allow passwords to be sent in cleartext (warning: don't use without TLS)--azblob.access-tier string         Specify the storage class for azblob--azblob.account-key string         Specify the account key for azblob--azblob.account-name string        Specify the account name for azblob--azblob.encryption-key string      Specify the server side encryption customer provided key--azblob.encryption-scope string    Specify the server side encryption scope--azblob.endpoint string            (experimental) Set the Azblob endpoint URL--azblob.sas-token string           Specify the SAS (shared access signatures) for azblob--ca string                         The path name to the certificate authority file for TLS connection--case-sensitive                    whether the filter should be case-sensitive--cert string                       The path name to the client certificate file for TLS connection--complete-insert                   Use complete INSERT statements that include column names-c, --compress string                   Compress output file type, support 'gzip', 'snappy', 'zstd', 'no-compression' now--consistency string                Consistency level during dumping: {auto|none|flush|lock|snapshot} (default "auto")--csv-delimiter string              The delimiter for values in csv files, default '"' (default "\"")--csv-line-terminator string        The line terminator for csv files, default '\r\n' (default "\r\n")--csv-null-value string             The null value used when export to csv (default "\\N")--csv-separator string              The separator for csv files, default ',' (default ",")-B, --database strings                  Databases to dump--dump-empty-database               whether to dump empty database (default true)--escape-backslash                  use backslash to escape special characters (default true)-F, --filesize string                   The approximate size of output file--filetype string                   The type of export file (sql/csv)-f, --filter strings                    filter to select which tables to dump (default [*.*,!/^(mysql|sys|INFORMATION_SCHEMA|PERFORMANCE_SCHEMA|METRICS_SCHEMA|INSPECTION_SCHEMA)$/.*])--gcs.credentials-file string       (experimental) Set the GCS credentials file path--gcs.endpoint string               (experimental) Set the GCS endpoint URL--gcs.predefined-acl string         (experimental) Specify the GCS predefined acl for objects--gcs.storage-class string          (experimental) Specify the GCS storage class for objects--help                              Print help message and quit-h, --host string                       The host to connect to (default "127.0.0.1")--key string                        The path name to the client private key file for TLS connection-L, --logfile path                      Log file path, leave empty to write to console--logfmt format                     Log format: {text|json} (default "text")--loglevel string                   Log level: {debug|info|warn|error|dpanic|panic|fatal} (default "info")-d, --no-data                           Do not dump table data--no-header                         whether not to dump CSV table header-m, --no-schemas                        Do not dump table schemas with the data--no-sequences                      Do not dump sequences (default true)-W, --no-views                          Do not dump views (default true)--order-by-primary-key              Sort dump results by primary key through order by sql (default true)-o, --output string                     Output directory (default "./export-2024-06-26T11:19:24+08:00")--output-filename-template string   The output filename template (without file extension)--params stringToString             Extra session variables used while dumping, accepted format: --params "character_set_client=latin1,character_set_connection=latin1" (default [])-p, --password string                   User password-P, --port int                          TCP/IP port to connect to (default 4000)-r, --rows uint                         If specified, dumpling will split table into chunks and concurrently dump them to different files to improve efficiency. For TiDB v3.0+, specify this will make dumpling split table with each file one TiDB region(no matter how many rows is).If not specified, dumpling will dump table without inner-concurrency which could be relatively slow. default unlimited--s3.acl string                     (experimental) Set the S3 canned ACLs, e.g. authenticated-read--s3.endpoint string                (experimental) Set the S3 endpoint URL, please specify the http or https scheme explicitly--s3.external-id string             (experimental) Set the external ID when assuming the role to access AWS S3--s3.provider string                (experimental) Set the S3 provider, e.g. aws, alibaba, ceph--s3.region string                  (experimental) Set the S3 region, e.g. us-east-1--s3.role-arn string                (experimental) Set the ARN of the IAM role to assume when accessing AWS S3--s3.sse string                     Set S3 server-side encryption, e.g. aws:kms--s3.sse-kms-key-id string          KMS CMK key id to use with S3 server-side encryption.Leave empty to use S3 owned key.--s3.storage-class string           (experimental) Set the S3 storage class, e.g. STANDARD--snapshot string                   Snapshot position (uint64 or MySQL style string timestamp). Valid only when consistency=snapshot-s, --statement-size uint               Attempted size of INSERT statement in bytes (default 1000000)--status-addr string                dumpling API server and pprof addr (default ":8281")-T, --tables-list strings               Comma delimited table list to dump; must be qualified table names-t, --threads int                       Number of goroutines to use, default 4 (default 4)--tidb-mem-quota-query uint         The maximum memory limit for a single SQL statement, in bytes.-u, --user string                       Username with privileges to run the dump (default "root")-V, --version                           Print Dumpling version--where string                      Dump only selected records

4、导出数据
导出test库下的所有数据,同时指定导出文件为sql,导出目录为/tmp/test,导出线程2,每10w行数据切换一次文件,每200MB切换一次文件

./dumpling -h192.168.14.121 -P4000 -uroot -p123456 --filetype sql -t 2 -o /tmp/test -r 100000 -F200MiB -B test

在这里插入图片描述
(备份成功)

查看导出的内容
在这里插入图片描述
其中

  • metadata:数据导出时的时间,binlog位置点
  • xxx.schema.sql:建库建表语句
  • xxx.000000100.sql:数据

导出test库下t1的表中id>10的数据,同时指定导出文件为CSV,导出目录为/tmp/t1,导出线程2,每100行数据切换一次文件,每100MB切换一次文件

./dumpling -h192.168.14.121 -P4000 -uroot -p123456 --filetype csv -t 2 -o /tmp/t1 -r 100 -F100MiB -T test.t1 --where "id>10"

在这里插入图片描述
(备份成功)

查看导出的内容
在这里插入图片描述
建库\建表语句依旧是SQL文件
不过数据为CSV格式

同时Dumpling默认也是一致性备份,通过MVCC机制备份出某个时间点的快照数据

三、数据导入

TiDB中提供了一种叫TiDB Lightning(Physical Import Mode模式)的数据导入方式,因为其导入过程TiDB是不能对外提供服务的,而且数据是从本地直接导入到TiKV,所以应用场景更适合TiDB集群初始化。
整个Lightning原理如下

  • 将集群切换为导入模式
  • 创建对应库表
  • 分割导入数据源
  • 读取数据源文件
  • 将源数据文件写入本地临时文件
  • 导入临时文件到TiKV集群
  • 检验与分析
  • 将集群切换回正常模式

四、Lightning实操

1、下载安装

wget https://download.pingcap.org/tidb-community-toolkit-v7.5.1-linux-amd64.tar.gz
------
tar -xvf tidb-community-toolkit-v7.5.1-linux-amd64.tar.gz

2、解压需要的工具包
在这里插入图片描述

tar xvf tidb-lightning-v7.5.1-linux-amd64.tar.gz

3、准备配置文件

vim tidb-lighning.toml
-----------------
[lightning]
#逻辑cpu数量
#region-concurrency = 
#日志
level = "info"
file = "tidb-lighning.log"[tikv-importer]
#开启并行导入
incremental-import = true
#设置为local模式
backend = "local"
#设置本地临时存储路径
sorted-kv-dir = "/tmp/sorted-kv-dir"[mydumper]
#源数据目录
data-source-dir = "/tmp/test"[tidb]
#tidb-server监听地址
host = "192.168.14.121"
port = 4000
user = "root"
password = ""
#表架构信息
status-port = 10080
#pd地址
pd-addr = "192.168.14.122:2379"

4、导入数据
我这里就将原集群清空,然后将上面-B导出的test库恢复回去

./tidb-lightning --config /opt/tidb-lighning.toml

在这里插入图片描述
(导入成功)

5、进入数据库校验
在这里插入图片描述
(验证无误)

彩蛋

TiDB-Lightning功能强大,可以通过配置文件过滤导入指定的表,同时也支持将MySQL中分库分表数据导入到TiDB中合并为一张表,还有断点续传等功能。
具体可以参考官方文档

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaWeb——MySQL:navicate客户端工具简单使用

目录 1. 连接 2. 新建数据库 3. 使用数据库 4. 新建表 5.使用表 6. 导出数据库 我这里是英文版,没有进行汉化。 1. 连接 点击左上角Connection,选择MySQL,(我连接的是自己计算机上的数据库)连接名输入&#x…

抖音开放平台运营同学联系我了,非常感谢

大家好,我是小悟 是怎么个事呢? 前几天在对接抖音开放平台,服务商代开发小程序里面的小程序备案,上传备案图片接口遇到了问题,具体的问题可详阅【抖音开放平台,这谁写的,要扣绩效吧】。 评论…

Java编程基本功大揭秘 | 详解深入分析Java线程池源码和底层原理,掌握实战技巧【1】

详解深入分析Java线程池源码和底层原理 文章大纲引言Java线程池概念及重要性 ThreadPoolExecutor类的概述ThreadPoolExecutor类的基本功能和作用**基本功能****核心作用** ThreadPoolExecutor主要构造函数及其参数继承关系链功能介绍ThreadPoolExecutor 构造器构造器参数构造器…

破解对LabVIEW的偏见

LabVIEW被广泛应用于科学研究、工程测试和自动化控制领域,具有专业性和高效的开发能力。尽管有人对其存在偏见,认为不如C语言,但LabVIEW的图形化编程、强大集成能力、丰富社区支持和专业功能,使其在许多实际应用中表现出色。通过多…

Go语言环境安装

Go下载地址 哪个能用用哪个。 https://go.dev/ https://golang.google.cn/(Golang官网的官方镜像) Windows 使用.msi安装包安装 下载msi文件 安装 双击运行go1.22.4.windows-amd64.msi Next 勾选I accept the terms in the License Agreement&…

收藏 | SSL证书无效的原因和解决办法

当浏览器访问一个使用SSL证书保护的网站时,会检查其证书的有效性。如果发现证书存在问题,浏览器会显示“SSL证书无效”的警告信息,提醒用户存在潜在的安全风险。 “SSL证书无效”的警告可能会导致用户离开站点(并且永远不会返回&…

MySQL高级-SQL优化-小结

文章目录 1、insert 优化2、主键优化3、order by 优化4、group by 优化5、limit 优化6、count 优化7、update 优化 1、insert 优化 insert:批量插入、手动控制事务、主键顺序插入 大批量插入:load data local infile 2、主键优化 主键长度尽量短、顺序插…

系统漏洞复现与勒索病毒

知识点:SMB漏洞介绍、漏洞复现流程、勒索病毒攻击与防护 渗透测试相关: 基本概念: 渗透测试就是利用我们所掌握的渗透知识,对网站进行一步一步的渗透,发现其中存在的漏洞和隐藏的风险,然后撰写一篇测试报…

FastAPI教程I

本文参考FastAPI教程https://fastapi.tiangolo.com/zh/tutorial 第一步 import uvicorn from fastapi import FastAPIapp FastAPI()app.get("/") async def root():return {"message": "Hello World"}if __name__ __main__:uvicorn.run(&quo…

elementUI的搭建使用过程

Element - The worlds most popular Vue UI framework 上面是elementUI的网站,进入网站 点击右上角的组件按钮 复制这段代码到你的项目终端:npm i element-ui -S 加载完成后即可使用elementUI网站中的组件,使用它们只需要复制组件下面的代码即可

Unity UGUI 实现简单两点连线功能

实现 记录鼠标点击位置为线段起点。 posStart Input.mousePosition; 创建一个Image 作为线段。 line new GameObject("line"); rtLine line.AddComponent<RectTransform>(); rtLine.pivot new Vector2(0, 0.5f); rtLine.localScale Vector3.one; img…

在操作系统中,background通常指的是运行于后台的进程或任务

在计算机中&#xff0c;"background"一词具有多种含义&#xff0c;以下是一些主要的解释和相关信息&#xff1a; 计算机视觉中的背景&#xff08;Background&#xff09;&#xff1a; 在计算机视觉中&#xff0c;background指的是图像或视频中的背景部分&#xff0c;…

IOS17闪退问题Assertion failure in void _UIGraphicsBeginImageContextWithOptions

最近项目更新到最新版本IOS17&#xff0c;发现一个以前的页面突然闪退了。原来是IOS17下&#xff0c;这个方法 UIGraphicsBeginImageContext(CGSize size) 已经被移除&#xff0c;原参数如果size为0的话&#xff0c;会出现闪退现象。 根据说明&#xff0c;上述方法已经被替换…

【shell脚本速成】python安装脚本

文章目录 案例需求应用场景解决问题脚本思路案例代码 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的每一刻&#xff0c;都沐…

React 中 useEffect

React 中 useEffect 是副作用函数&#xff0c;副作用函数通常是处理外围系统交互的逻辑。那么 useEffect 是怎处理的呢&#xff1f;React 组件都是纯函数&#xff0c;需要将副作用的逻辑通过副作用函数抽离出去&#xff0c;也就是副作用函数是不影响函数组件的返回值的。例如&a…

vue中如何使用echarts和echarts-gl实现三维折线图

一、vue中使用三维折线图 效果图&#xff1a; 二、使用步骤 1.引入库 安装echarts 在package.json文件中添加 "dependencies": {"echarts": "^5.1.2""echarts-gl": "^1.1.1",// "echarts-gl": "^2.0.8…

5. Spring IoCDI ★ ✔

5. Spring IoC&DI 1. IoC & DI ⼊⻔1.1 Spring 是什么&#xff1f;★ &#xff08;Spring 是包含了众多⼯具⽅法的 IoC 容器&#xff09;1.1.1 什么是容器&#xff1f;1.1.2 什么是 IoC&#xff1f;★ &#xff08;IoC: Inversion of Control (控制反转)&#xff09;总…

AGI大模型的门槛是什么?怎么学

AGI&#xff08;Artificial General Intelligence&#xff0c;通用人工智能&#xff09;大模型&#xff0c;即具备类似人类智能的、能够理解、学习、应用知识和技能并解决各种复杂问题的通用型人工智能模型&#xff0c;目前仍然是人工智能研究的前沿领域&#xff0c;具有以下门…

深度学习 --- stanford cs231学习笔记七(训练神经网络之梯度下降优化器)

5&#xff0c;梯度下降优化器 5&#xff0c;1 梯度下降在深度学习中的作用 在深度学习中&#xff0c;权重W的值是否合理是由损失函数L来判断的。L越小&#xff0c;表示W的设置越happy。L越大&#xff0c;表示W的值越unhappy。 为了让L越来越小&#xff0c;常用的方法是梯度下降…

句法分析概述

第1关&#xff1a;句法分析概述 任务描述 本关任务&#xff1a;通过对句法分析基本概念的学习&#xff0c;完成相应的选择题。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 句法分析的基础概念&#xff1b; 句法分析的数据集和评测方法。 句法分析简介…