TiDB实战篇-数据导出工具Dumpling

news2025/1/16 20:10:47

简介

简要使用数据导出工具。

介绍

特点

适用场景

部署

下载

TiDB 社区版 | PingCAP

安装

#解压下载好的安装包
tar -zxvf tidb-community-toolkit-v6.5.0-linux-amd64.tar.gz
#进入到文件夹以后解压出dumpling
cd tidb-community-toolkit-v6.5.0-linux-amd64
tar -zxvf dumpling-v6.5.0-linux-amd64.tar.gz

vi /etc/profile.d/my.sh
#TOOLKIT_HOME
export TOOLKIT_HOME=/root/tidb-community-toolkit-v6.5.0-linux-amd64
export PATH=$PATH:$TOOLKIT_HOME
source /etc/profile.d/my.sh

打印

[root@master ~]# dumpling
Release version: v6.5.0
Git commit hash: 706c3fa3c526cdba5b3e9f066b1a568fb96c56e3
Git branch:      heads/refs/tags/v6.5.0
Build timestamp: 2022-12-27 03:43:05Z
Go version:      go version go1.19.3 linux/amd64

[2023/04/16 11:33:01.563 +08:00] [INFO] [versions.go:54] ["Welcome to dumpling"] ["Release Version"=v6.5.0] ["Git Commit Hash"=706c3fa3c526cdba5b3e9f066b1a568fb96c56e3] ["Git Branch"=heads/refs/tags/v6.5.0] ["Build timestamp"="2022-12-27 03:43:05"] ["Go Version"="go version go1.19.3 linux/amd64"]
[2023/04/16 11:33:01.565 +08:00] [WARN] [version.go:316] ["select tidb_version() failed, will fallback to 'select version();'"] [error="Error 1045: Access denied for user 'root'@'127.0.0.1' (using password: NO)"]

create dumper failed: sql: SELECT version();: Error 1045: Access denied for user 'root'@'127.0.0.1' (using password: NO)

导出概述 

使用的最小权限

导出SQL文件

dumpling -u root -P 4000 -h 127.0.0.1 --filetype sql -t 8 -o /tmp/test -r 200000 -F256MiB
#表示导出的文件是sql
--filetype sql 
#表示导出的线程并发数
-t 8
#导出的文件位置
-o /tmp/test
#多少行的时候新创建一个文件
-r 200000
#到达256M新创建一个文件
-F256MiB

导出CSV文件

./dumpling -u root -P 4000 -h 127.0.0.1 -o /tmp/test --filetype csv -r 200000 -F256MiB

对于导出数据过滤

如果没有指定导出文件的类型,那么默认是sql的。

导出数据的库表过滤

导出实战

前提

#登录到tidb查看下数据
mysql -h127.0.0.1 -P4000 -uroot -ptidb

use test;

mysql> select * from emp;
+------+
| id   |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

导出SQL文件

dumpling -uroot -P4000 -h127.0.0.1 -ptidb --filetype sql -t 8 -o /tmp/test/sql -r 200000 -F256MiB -B test

导出的文件

[root@master ~]# cd /tmp/test/sql
[root@master sql]# ll
total 16
-rw-r--r-- 1 root root 146 Apr 16 12:06 metadata
-rw-r--r-- 1 root root  59 Apr 16 12:06 test.emp.0000000010000.sql
-rw-r--r-- 1 root root 139 Apr 16 12:06 test.emp-schema.sql
-rw-r--r-- 1 root root  95 Apr 16 12:06 test-schema-create.sql

metadata

[root@master sql]# cat metadata 
Started dump at: 2023-04-16 12:06:17
SHOW MASTER STATUS:
	Log: tidb-binlog
	Pos: 440826063176335367
	GTID:

Finished dump at: 2023-04-16 12:06:17

 test-schema-create.sql

[root@master sql]# cat cat test-schema-create.sql 
cat: cat: No such file or directory
/*!40101 SET NAMES binary*/;
CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;

test.emp-schema.sql 

[root@master sql]# cat test.emp-schema.sql
/*!40101 SET NAMES binary*/;
CREATE TABLE `emp` (
  `id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

test.emp.0000000010000.sql 

[root@master sql]# cat test.emp.0000000010000.sql
/*!40101 SET NAMES binary*/;
INSERT INTO `emp` VALUES
(1);

导出csv文件

dumpling -uroot -P4000 -h127.0.0.1 -ptidb --filetype csv -t 8 -o /tmp/test/csv -r 200000 -F256MiB -B test

如果想导出的单独的表,那么就用-T test.emp 

[root@master csv]# ll
total 16
-rw-r--r-- 1 root root 146 Apr 16 12:59 metadata
-rw-r--r-- 1 root root   9 Apr 16 12:59 test.emp.0000000010000.csv
-rw-r--r-- 1 root root 139 Apr 16 12:59 test.emp-schema.sql
-rw-r--r-- 1 root root  95 Apr 16 12:59 test-schema-create.sql

test.emp.0000000010000.csv 

[root@master csv]# cat test.emp.0000000010000.csv
"id"
1

导出数据的一致性 

  • Snapshot #使用的是MVCC机制,如果导出的时候是10点,那么就算10点10分删除了数据,还是会吧10点的数据全部导出来
  • None     #不会使用MVCC机制,如果导出的时候有数据删除了,删除那一部分数据就导不出来了。
  • Flush    #在数据库里面加一个只读锁。
  • Lock     #导出哪张表就会给哪张表加锁。
  • Auto     #如果是tidb那么就是Flush,如果是TiDB那么就是Snapshot。 

性能优化

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

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

相关文章

MySQL中的索引index(超详细)

概念: 在MySQL中,索引(index)是一种特殊的数据结构,它能够加快数据库中数据的检索速度。索引可以看做是一本书的目录,它提供了一种快速查找数据的方式。 MySQL中的索引是建立在一张表的一列或多列上的&…

开发者社区项目开发流程

项目流程: 项目创建 首先创建一个文件夹,然后找到要创建项目的文件夹 输入CMD 进入小黑窗 输入“vue create 项目名” 创建我们这个项目(其中细节Ctrl左键点击链接见个人博客(99条消息) 创建Vue项目流程_啊唯11的博客-CSDN博客) 2.删除项认文件&#x…

C++命名空间域namespace与域作用限制符: :,cin,cout输入输出简单介绍

TIPS C是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等C总计63个关键字,C语言32个关键字,具体没有必要先不去管它 域,命名空间域与namespace关键字 cpp需要解决的第一…

Java后端面试题 重难点和被问到没答上来的点(包括java基础、关系型数据库、Redis、计算机网络、Spring、Java多线程、vue等)

以下是我记录的一些重点问题和面试中被问到没答上来的问题,包括java基础、关系型数据库、Redis、计算机网络、Spring、Java多线程、vue 问题目录 1.fail-safe和fail-fast2.四引用3.explain字段重要内容4.maven三大生命周期5.MYSQL 创建修改表6.数据库三范式7.Strin…

华科超算用户手册的学习笔记

1. 资源计费 1.1 费用记账 日期费用(上限3000元)2023.04.171002023.04.18200总计300 1.2 创建实例时显示项目的余额不足 这是因为项目账户之中目前还没有足够的卡时; Note 这里是因为上次充值的卡时还在田老师的个人账户中,还需…

vue el-table 单机行选中高亮并获取行数据,再次单击取消行选中

1. 效果展示 当没有行被选中时,按钮是不可用的 当有行被选中时,该行高亮,同时按钮可用 再次点击该行,取消高亮,按钮不可用 2. 代码 2.1 组件代码 table设置了highlight-current-row,可以在选中某个数据行…

List集合和Set集合的区别

Collection集合总结 在进行Java开发的时候经常会用到集合,而集合又主要分为两种:Collection单列集合和Map集合。这里主要介绍一下Collection的一些常用子接口的区别。 Collection集合😮 指单列集合,存储的一组对象。 List&#x…

4大方法,教你如何做好项目管理

作为一个项目经理,项目管理是我们日常工作最核心的一项职能。无论是公司的业务开发还是重大项目的推进,都离不开项目管理。然而对于很多初入职场的人来说,项目管理还是一个相当新颖、陌生的领域,因此我今天就来分享一些我在项目管…

【安全与风险】密码安全和用户认证

密码安全和用户认证 基本问题证明你是谁为什么要验证还需要什么基于口令的身份认证常用使用模式常用使用模式可惜的是社会工程悉尼大学 (绿化96)尴尬和记忆关于密码使用的3个主要问题UNIX形式的密码密码散列字典式攻击影子密码其他密码问题生物计量学多模式生物识别系统定义为什…

数字化体验时代,企业如何做好内部知识数字化管理

随着数字化时代的到来,企业内部的知识管理也面临着新的挑战和机遇。数字化技术的应用,可以极大地提高企业内部知识的数字化管理效率和质量,从而提升企业内部的工作效率、员工满意度和企业竞争力。本文将从数字化时代的背景出发,探…

NVM安装nodejs的方法

前提: 为解决nodejs升级后出现的各种问题,使用NVM在一台电脑上安装多个版本的nodejs,以便项目可以根据自身使用的node版本来开发。 nodejs版本的查询地址: https://nodejs.org/zh-cn/download/releases/ nodejs下载官网地址&…

17.样式冲突

写在 .vue 组件中的样式会全局生效,比如我现在有一个LEFT组件 有一个RIGHT组件 将LEFT组件与RIGHT组件放在App组件中 发现我只给LEFT样式,但是在RIGHT中也生效了 为了避免这种情况,我们有下面几种解决方式 目录 1 具体到指定的标签 2 sc…

【微信小程序-原生开发】实用教程22 - 绘制图表(引入 echarts,含图表的懒加载-获取到数据后再渲染图表,多图表加载等技巧)

最终效果预览 实现流程 微信小程序中使用 echarts 需使用官方提供的 ec-canvas 组件 1. 下载 ec-canvas 组件 点击下方链接,下载 ec-canvas 组件 https://gitcode.net/mirrors/ecomfe/echarts-for-weixin/-/tree/master 将其中的 ec-canvas 文件夹拷贝到微信小程序…

数据结构考研版——用栈实现后缀表达式前缀表达式求值

用栈实现后缀表达式求值 int calsub(float opand1,char op,float opand2,float &result) {if(op){resultopand1opand2;}if(op-){resultopand1-opand2;}if(op*){resultopand1*opand2;}if(op/){//判断是否为0一般把它与我们宏定义的极小值值进行比较,接近于0则视…

把你的阿里巴巴图标库转成你自己的@ant-design/icons

背景 我们使用iconfont-阿里巴巴矢量图标库来管理自己的一套图标,并且基于它的js资源,封装了自己的icons图标组件。封装的方法是使用了antd提供的createFromIconfontCN方法 但随着图标库越来越大,JS资源文件也变得越来越大。在业务中&#x…

protobuf序列化原理、安装与应用

目录 protobuf序列化 protobuf的原理 protobuf 的安装 编译message文件 应用protobuf protobuf序列化 protobuf是一种比json和xml等序列化工具更加轻量和高效的结构化数据存储格式,性能比json和xml真的强很多,毕竟google出品。 官网:https:…

C语言笔记 | 一元三次方程

文章目录 0x00 前言 0x01 问题分析 0x02 代码设计 0x03 完整代码 0x04 运行效果 0x05 参考文献 0x06 总结 0x00 前言 在 1545 年,意大利学者卡丹所写的《关于代数的大法》中,提出了一元三次方程的求根公式。人们将其称为卡丹公式。对于标准型的一…

Python 彩蛋 —— 开发人员留下的惊喜

Python 彩蛋 —— 开发人员留下的惊喜 简介:Python 核心程序开发人员在软件内部设计了2个彩蛋。一起来看看吧。 文章目录 Python 彩蛋 —— 开发人员留下的惊喜💡彩蛋一:Python 之禅💡彩蛋二:Python 有趣的漫画 &#…

程序员面试完之后,人麻了...

去面试吧 面不被录用的试 面hr为了完成任务的试 面一轮二轮没有下文试 面需要通勤2小时的试 面随时加班的试 ...... 今年的“金三银四”被网友们称为“铜三铁四”,招聘软件上的岗位都能背下来了,简历却依然石沉大海。 好不容易等来个回复&#xff…

南京邮电大学通达学院2023《电子装配实习》报告

南京邮电大学通达学院2023《电子装配实习》报告 一 声明二 题目/实习报告提示三 例答 红笺寄 休遣玉人知 ——赠nmy 一 声明 南京邮电大学通达学院2023《电子装配实习》报告 答案更新时间:2023.04.10,已更新完成,如无错误不在更新 由于作者解答能力有限…