Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具。开发人员分别来自MySQL,Facebook,SkySQL公司。目前已经在有一些大型产品业务上测试并使用了Mydumper。分稳定版和开发版两种,目前最新稳定版是0.2.3和最新开发版是0.5.1。恢复时可使用myloader工具。

Mydumper主要特性:

  • 轻量级C语言写的代码
  • 比mysqldump接近快10倍的速度
  • 事务性和非事务性表一致的快照(适用于0.22+)
  • 快速的文件压缩(File compression on-the-fly)
  • 支持导出binlog
  • 多线程恢复( 0.2.1+)
  • 可以用守护进程的工作方式,定时的扫描和输出连续的二进制日志
  • 开源  (GNU GPLv3)

项目主页:http://www.mydumper.org/
mydumper工作步骤:

wget http://launchpadlibrarian.net/77098505/mydumper-0.5.1.tar.gz
我在CentOS 6.0上测试的,安装前

#yum install glib2-devel mysql-devel zlib-devel pcre-devel

#apt-get install libglib2.0-dev libmysqlclient15-dev zlib1g-dev libpcre3-dev  //Ubuntu/Debian用户

#tar -xzvf mydumper-0.5.1.tar.gz

#cd mydumper-0.5.1

#cmake .

#make;make install

# mydumper -u root -p 123456  -P 3307 -B test_innodb -o /backup/database/export-20111119

[root@localhost export-20111119]# ls

metadata  test_innodb.t_innodb-schema.sql  test_innodb.t_innodb.sql

[root@localhost export-20111119]# cat metadata

Started dump at: 2011-11-19 16:55:28

SHOW MASTER STATUS:

Log: mysql-bin.000019

Pos: 106

Finished dump at: 2011-11-19 16:55:28

# myloader -u root -p 123456  -P 3307 -d /backup/database/export-20111119/ –overwrite-tables

mydumper主要参数

–host, -h 连接的mysql服务器

–user, -u 用户备份的连接用户

–password, -p

–port, -P  连接端口

–socket, -S  连接socket文件

–database, -B 需要备份的数据库

–table-list, -T 需要备份的表,用,分隔

–outputdir, -o  输出的目录

–build-empty-files ,-e   如果表数据是空,还是产生一个空文件,默认无数据则只有表结构文件

–regex, -x  支持正则表达式,如mydumper –regex ’^(?!(mysql|test))’

–ignore-engines, -i 忽略的存储引擎

–no-schemas, -m  不导出表结构

–long-query-guard  长查询,默认60s,超过则通过mydumper

–kill-long-queries, -k 可以设置kill长查询

–verbose, -v 0 = silent, 1 = errors, 2 = warnings, 3 = info,默认是2

–binlogs, -b  导出binlog

–daemon, -D  启用守护进程模式

–snapshot-interval, -I  dump快照间隔时间,默认60s

–logfile, -L  mysqldumper日志输出,一般在Daemon模式下使用

myloader 大多参数和mydumper一样

–directory, -d  要还原的数据目录

–overwrite-tables, -o Drop any existing tables when restoring schemas

mydumper源码分析,强烈推荐。

发表评论

电子邮件地址不会被公开。 必填项已用*标注