暂无图片
暂无图片
10
暂无图片
暂无图片
4
暂无图片

mydumper版本0.10.7新特性与原理

原创 黄江平 2021-08-17
2804

1.什么是mydumper?
MyDumper是一个数据库的逻辑备份工具,和官方的mysqldump,mysqlpump类似。主要有命令2个工具:mydumper和myloader。

2.Mydumper 版本0.10.7新特性
2.1为每个包含行数的表添加元数据文件。
2.2增加where条件导出。
2.3增加选项启用和禁用redo_log(mysql 8 版本的特性)
2.4添加wsrep_sync_wait 支持。(Galera集群和一致读取可能导致死锁和停机)
2.5添加快速索引创建功能(这个功能不错)。
2.6添加主键排序功能。
2.7增加了对转储文件的checksum校验支持。
2.8使用单引号而不是双引号转储字符串。
2.9增加指定快照数量。

3.测试

开始导表Sbtest的数据
[root@localhost dumper_back]# mydumper -B sbtest --user=test --password=test --host=192.168.17.110 --port=19329 -o /data/dumper_back --logfile=/data/dumper_back/dump.log

查看备份目录文件如下:
image.png

备分文件中主要有metadata文件,每个表的schema文件,每个表的数据,增加了一个表有多少数据记录的文件(文件名是schema+表名+metadata).

恢复数据库sbtest。
time myloader -B sbtest --user=test --password=test --host=192.168.17.110 --port=19329 --innodb-optimize-keys -o --directory=/data/dumack --logfile=/data/dumper_back/import.log

real 0m9.797s
user 0m0.336s
sys 0m0.175s

[root@localhost dumper_back]# time myloader -B sbtest --user=test --password=test --host=192.168.17.110 --port=19329 -o --directory=/data/dumper_back --logfile=/data/dumper_back/import.log

real 0m10.420s
user 0m0.328s
sys 0m0.181s

–innodb-optimize-keys 这个是快速索引创建功能,由于我的数据不多,导入速度提高不明显,只提高了1秒多。

备份特定条件的数据
mydumper -B sbtest -T sbtest1 --user=test --password=test --host=192.168.17.110 --port=19329 --where=’ id in (162849,162848,162847)’ -o /data/dumper_back

查看导出的数据文件
[root@localhost dumper_back]# cat sbtest.sbtest1.sql
/!40101 SET NAMES binary/;
/!40014 SET FOREIGN_KEY_CHECKS=0/;
/*!40103 SET TIME_ZONE=’+00:00’ */;
INSERT INTO sbtest1 VALUES
(162847,6,‘6’,‘6’),
(162848,7,‘7’,‘7’),
(162849,2,‘2’,‘2’);

其它功能不一一测试,感兴趣的朋友请自行测试。

4.mydumper原理
把general_log 打开,可以查看mydumper大概原理操作过程。
image.png
image.png
image.png

原理过程如下:
1.加数据库全局读锁。
2.读取当前时间点的二进制日志文件名和日志写入的位置并记录在metadata文件中。
3.默认4个并行线程创建一致性读。
4.导出表结构。
5.释放全局表锁。
6.开始一致性读导出表数据。
7.导完数据后结束。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

小草
暂无图片
1年前
评论
暂无图片 0
原理过程如下: 1.加数据库全局读锁。 2.读取当前时间点的二进制日志文件名和日志写入的位置并记录在metadata文件中。 3.默认4个并行线程创建一致性读。 4.导出表结构。 5.释放全局表锁。 6.开始一致性读导出表数据。 7.导完数据后结束。
1年前
暂无图片 点赞
评论
筱悦星辰
暂无图片
1年前
评论
暂无图片 0
人生犹如走山路,可能会历经高峰,也可能会落入低谷。
1年前
暂无图片 点赞
评论
wzf0072
暂无图片
1年前
评论
暂无图片 0
原理过程如下: 1.加数据库全局读锁。 2.读取当前时间点的二进制日志文件名和日志写入的位置并记录在metadata文件中。 3.默认4个并行线程创建一致性读。 4.导出表结构。 5.释放全局表锁。 6.开始一致性读导出表数据。 7.导完数据后结束。
1年前
暂无图片 点赞
评论
11 0
暂无图片
1年前
评论
暂无图片 0
👍
1年前
暂无图片 点赞
评论