undefined
1 Mydumper 介绍
Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具。
Mydumper主要特性:
- 轻量级C语言写的
- 多线程备份,备份后会生成多个备份文件
- 事务性和非事务性表一致的快照(适用于0.2.2以上版本)
- 快速的文件压缩
- 支持导出binlog
- 多线程恢复(适用于0.2.1以上版本)
- 以守护进程的工作方式,定时快照和连续二进制日志(适用于0.5.0以上版本)
- 开源 (GNU GPLv3)
|
1 |
|

2 mydumper 安装
mydumper使用c语言编写,使用glibc库
mydumper安装所依赖的软件包,glibc, zlib, pcre, pcre-devel, gcc, gcc-c++, cmake, make, mysql客户端库文件
- 安装依赖软件包,将mysql客户端库文件路径添加至/etc/ld.so.conf, 如/usr/local/mysql/lib
2. 解压软件包进入目录,cmake .
3. make && make install
安装步骤
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
2.1 mydumper 参数解释
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
2.2 myloader 参数解释
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
使用案例:

备份 beta 库 到 /data/backup/mysql 文件夹中
|
1 2 3 4 5 6 7 8 9 10 11 |
|

从上面可以可以看出
备份所生成的文件
目录中包含一个metadata文件
-
-
记录了备份数据库在备份时间点的二进制日志文件名,日志的写入位置,
-
如果是在从库进行备份,还会记录备份时同步至主库的二进制日志文件及写入位置
每个表有两个备份文件: -
database.table-schema.sql 表结构文件
-
database.table.sql 表数据文件
-
恢复 beta 库
|
1 2 3 4 5 6 |
|

3 mydumper 备份原理
3.1 备份过程信息
1. 先把general_log 打开
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|

2. 删除原来备份数据,进行重新备份
|
1 2 3 4 5 6 7 8 |
|
主要是这些步骤


UNLOCK TABLES后截图没截图玩,最后有5个quit 信息
上面两个截图是完整的备份步骤
3. 单个库备份过程(这个库是的引擎是 innodb)
这里我总结一下
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
注:由于我的库很小,所以一下就结束了。
3.2 备份原理
1、主线程 FLUSH TABLES WITH READ LOCK, 施加全局只读锁,保证数据的一致性
2、读取当前时间点的二进制日志文件名和日志写入的位置并记录在metadata文件中,以供即使点恢复使用
3、N个(线程数可以指定,默认是4)dump线程把事务隔离级别改为可重复读 并开启读一致的事物
4、dump non-InnoDB tables, 首先导出非事物引擎的表
5、主线程 UNLOCK TABLES 非事物引擎备份完后,释放全局只读锁
6、dump InnoDB tables, 基于事物导出InnoDB表
7、事物结束
本文详细介绍了Mydumper,一个针对MySQL和Drizzle的高性能多线程备份工具。Mydumper具备轻量级、多线程备份、事务一致性等特性,并支持快速压缩和binlog导出。安装过程中需要安装依赖软件包,然后通过cmake和make进行编译安装。在使用mydumper时,可以通过各种参数设置备份和恢复的行为,例如指定数据库、表、备份目录等。myloader是其恢复工具,同样支持多线程恢复。备份原理包括加全局锁、记录二进制日志状态、多线程导出数据、解锁和事务结束。
738

被折叠的 条评论
为什么被折叠?



