暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mydumper 和 myloader 简介

原创 张欣 2023-07-19
1289
  • mydumper: 是一款开源的多线程备份工具,用于备份 MySQL 数据库。mydumper 支持备份整个数据库、单个表或多个表,支持多线程备份,可以加速数据备份过程。mydumper 还支持备份数据的压缩和加密,可以从备份文件中恢复数据。mydumper 是一款命令行工具,需要安装并使用命令行进行操作。

  • myloader: 是一款用于恢复 mydumper 备份文件的工具。myloader 可以快速恢复备份的 MySQL 数据库,并支持从备份文件中恢复数据,不需要先创建数据库。myloader 还支持恢复到指定时间点的备份文件,可以指定要恢复的数据表和数据行。myloader 是一款命令行工具,需要安装并使用命令行进行操作。

mydumper 和 myloader 都是开源的工具,具有高效、安全、可靠的特点,并且支持多种备份方式和备份数据的压缩和加密。

使用 MyDumper 仅支持导出 OceanBase 数据库 MySQL 模式租户中的数据。

  • Mydumper特点

采用轻量C语言编写,使用glibc库
执行速度比mysqldump大约快10倍
支持事务性表和非事务性表一致的快照
支持快速的文件压缩
支持导出binlog(在新版本中已经不能备份binlog)
支持到备份文件切块
多线程 备份(因为是多线程逻辑备份,备份后会生成多个备份文件)
多线程恢复(适用于0.2.1以上版本)
在备份时对Myisam表施加FTWRL(flush tables with read lock),会阻塞DML语句
支持以守护进程的方式工作,支持定时快照
基于GNU GPLv3协议开源

mydumper的主要工作步骤:

1 主线程 FLUSH TABLES WITH READ LOCK, 施加全局只读锁,以阻止DML语句写入,保证数据的一致性 

 2 读取当前时间点的二进制日志文件名和日志写入的位置并记录在metadata文件中,以供即使点恢复使用 

 3 START TRANSACTION WITH CONSISTENT SNAPSHOT; 开启读一致事务 

 4 启用N个(线程数可以指定,默认是4)dump线程导出表和表结构 

 5 备份非事务类型的表 

 6 主线程 UNLOCK TABLES,备份完成非事务类型的表之后,释放全局只读锁 

 7 dump InnoDB tables, 基于事物导出InnoDB表 

 8 事物结束

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

评论