Mydumper 是一款针对MySQL和Drizzle的高性能多线程备份和恢复工具。
主要特性:
1、轻量级,用C所写
2、执行速度是MySQLDUMP的10倍左右
3、事务性表和非事务性表的一致性快照(0.22以上版本)
4、文件压缩(格式为.gz)
5、支持导出binlog(这个我测试过,但没有成功,求教,测试版本 0.23)
6、多线程恢复(0.21版本以上)
7、守护进程工作方式,定时快照和连续二进制日志(0.50版本以上)
8、最令人高兴地是:开源(GNU GPLv3)
安装部分:
请参考官方文档:http://docs.mydumper.org/compiling.html(这个是0.2的文档)
安装成功后,会有mydumper(备份) myload(恢复) 两个工具
参数可参考: mydumper --help 详细解说:http://docs.mydumper.org/mydumper_usage.html
例:mydumper -B monster -o /tmp/abc/test1 -c -v 3
生成三种文件:*schema.sql 结构文件 *.sql 数据文件 .metadata 元数据文件(这个是包含备份时间,该时间的二进制日志日志位置,如:Started dump at: 2012-07-27 19:00:38
SHOW MASTER STATUS:
Log: mysql-bin.000019
Pos: 542237180)
myloader 使用 基本是:
myloader --directory /path/to/mydumper/backup 【options】
mydumper 部分参数解说:
个人认为比较实用的参数:
--threads 备份数据线程的个数,默认为4(ps:并不是线程越多越好,需实际测试time commands)
--long-query-guard 设置长查询的上限默认是60S,
--kill-long-queries 如果长查询超过规定时间,默认mydumper会退出,是用该参数,可以直接杀死长查询,来保证备份继续。
--regex 匹配多个数据库或者数据表
--rows 将几个表分成几个chunk,可以把一个表分成多个文件,文件的个数是根据表的总行数和rows 个数来分配。
(ps 该工具不支持字符集设置;没有像myslqdump 类似的选项 --master-info 将change master to 语句写入到sql文件中;该工具一致性做的很好!)