tidb的全量逻辑导出数据工具dumpling

网友投稿 1071 2022-10-09

tidb的全量逻辑导出数据工具dumpling

tidb的全量逻辑导出数据工具dumpling

######################

功能:

​​Dumpling​​ 是一个用于从 MySQL/TiDB 进行全量逻辑导出的工具。你可以把存储在 TiDB 或 MySQL 中的数据导出为 SQL 或 CSV 格式,用于逻辑全量备份。

数据源:不仅能够导出mysql的数据,而且还可以导出tidb的数据;格式:数据导出格式可以为sql文件格式,也可以导出为csv格式。这种格式方便迁移到其他数据库;用途:逻辑备份数据

基本信息:

Dumpling 的输入:MySQL/TiDB 集群Dumpling 的输出:SQL/CSV 文件适用 TiDB 版本:所有版本Kubernetes 支持:尚未支持

权限要求:

selectreloadlock tablesreplication clientprocess

原理:

适用场景:

数据量较小,不适合大数据量导出;需要导出数据为sql或csv格式的需求只能全量导出数据,不能增量导出数据

导出数据后的元数据信息metadata:此文件包含导出的起始时间,以及 master binary log 的位置。

[work@xxx]$ cat metadataStarted dump at: 2021-10-14 15:46:56SHOW MASTER STATUS: Log: mysql-bin.000224 Pos: 1990 GTID:ef863667-298a-11eb-8d0b-0c42a15d0b4c:1-175408Finished dump at: 2021-10-14 16:01:41

安装dumpling:

shell>>

查看dumpling命令参数:

shell>> tiup dumpling --help

metadata:此文件包含导出的起始时间,以及 master binary log 的位置。Copycat metadataStarted dump at: 2020-11-10 10:40:19SHOW MASTER STATUS: Log: tidb-binlog Pos: 420747102018863124Finished dump at: 2020-11-10 10:40:20{schema}-schema-create.sql:创建 schema 的 SQL 文件。Copycat test-schema-create.sqlCREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;{schema}.{table}-schema.sql:创建 table 的 SQL 文件Copycat test.t1-schema.sqlCREATE TABLE `t1` ( `id` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;{schema}.{table}.{0001}.{sql|csv}:数据源文件Copycat test.t1.0.sql/*!40101 SET NAMES binary*/;INSERT INTO `t1` VALUES(1);*-schema-view.sql、*-schema-trigger.sql、*-schema-post.sql:其他导出文件

备份命令:

shell>> tiup dumpling --user root -p 123456 --host 10.10.10.10 --port 3306 --filetype sql -t 8 -F 102400MiB -o /home/work/scripts/tmp/10.10.10.10 --database apple,google,airbnb

当你只需要备份mysql或tidb的部分数据库时,用--database指定数据库时,各个数据库名称之间用逗号分割,而不是空格

选项:--sql说明:选项仅仅可用于导出 CSV 的场景。 举例:--sql 'select * from `test`.`sbtest1` where id < 100'

选项:--where说明:条件用于除系统数据库(包括 mysql 、sys 、INFORMATION_SCHEMA 、PERFORMANCE_SCHEMA、METRICS_SCHEMA 和 INSPECTION_SCHEMA)外所有其他数据库举例:--where "id < 100"

选项: --filter 说明:帅选库表,多个匹配规则就用多个--filter规则举例: --filter "employees.*" --filter "*.WorkOrder" 只备份employees库中所有表,和所有库中的WorkOrder表

选项:--threads ,可简写为-t说明:指定备份并发线程数,默认为4举例:--threads 8

选项:--tables-list,可简写为-T说明:指定备份表,需要库名称前缀举例:--tables-list my_db.my_table

选项:--consistency,可简写为-T说明:指定备份表,需要库名称前缀举例:--consistency autoDumpling 通过 --consistency 标志控制导出数据“一致性保证”的方式。在使用 snapshot 来保证一致性的时候,可以使用 --snapshot 选项指定要备份的时间戳。还可以使用以下的一致性级别:flush:使用 FLUSH TABLES WITH READ LOCK 短暂地中断备份库的 DML 和 DDL 操作、保证备份连接的全局一致性和记录 POS 信息。所有的备份连接启动事务后释放该锁。推荐在业务低峰或者 MySQL 备份库上进行全量备份。snapshot:获取指定时间戳的一致性快照并导出。lock:为待导出的所有表上读锁。none:不做任何一致性保证。auto:对 MySQL 使用 flush,对 TiDB 使用 snapshot。

选项:--rows,可简写为-r说明:单个文件的最大行数举例:--rows 2000000

#########################

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:管道与Unix哲学
下一篇:野狗(wilddog)微信小程序客户端
相关文章

 发表评论

暂时没有评论,来抢沙发吧~