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文件中;该工具一致性做的很好!)