MySQL多线程备份工具mydumper
一、Mydumper介绍
Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具。开发人员主要来自MySQL,Facebook,SkySQL公司。目前已经在一些线上使用了Mydumper。
Mydumper主要特性:
- 轻量级C语言写的
- 执行速度比mysqldump快10倍
- 事务性和非事务性表一致的快照(适用于0.2.2以上版本)
- 快速的文件压缩
- 支持导出binlog
- 多线程恢复(适用于0.2.1以上版本)
- 以守护进程的工作方式,定时快照和连续二进制日志(适用于0.5.0以上版本)
- 开源 (GNU GPLv3)
二、Mydumper安装
1# yum install glib2-devel mysql-devel zlib-devel pcre-devel
2# wget https://launchpadlibrarian.net/185032423/mydumper-0.6.2.tar.gz
3# tar zxvf mydumper-0.6.2.tar.gz
4# cd mydumper-0.6.2
5# cmake .
6# make
7# make install
三、mysqldumper及myloader参数介绍
1、mydumper参数介绍:
1-B, --database 需要备份的库
2-T, --tables-list 需要备份的表,用,分隔
3-o, --outputdir 输出目录
4-s, --statement-size Attempted size of INSERT statement in bytes, default 1000000
5-r, --rows 试图分裂成很多行块表
6-c, --compress 压缩输出文件
7-e, --build-empty-files 即使表没有数据,还是产生一个空文件
8-x, --regex 支持正则表达式
9-i, --ignore-engines 忽略的存储引擎,用,分隔
10-m, --no-schemas 不导出表结构
11-k, --no-locks 不执行临时共享读锁 警告:这将导致不一致的备份
12-l, --long-query-guard 长查询,默认60s
13--kill-long-queries kill掉长时间执行的查询(instead of aborting)
14-b, --binlogs 导出binlog
15-D, --daemon 启用守护进程模式
16-I, --snapshot-interval dump快照间隔时间,默认60s,需要在daemon模式下
17-L, --logfile 日志文件
18-h, --host
19-u, --user
20-p, --password
21-P, --port
22-S, --socket
23-t, --threads 使用的线程数,默认4
24-C, --compress-protocol 在mysql连接上使用压缩
25-V, --version
26-v, --verbose 更多输出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2
2、myloader参数介绍:
1-d, --directory 导入备份目录
2-q, --queries-per-transaction 每次执行的查询数量, 默认1000
3-o, --overwrite-tables 如果表存在删除表
4-B, --database 需要还原的库
5-e, --enable-binlog 启用二进制恢复数据
6-h, --host
7-u, --user
8-p, --password
9-P, --port
10-S, --socket
11-t, --threads 使用的线程数量,默认4
12-C, --compress-protocol 连接上使用压缩
13-V, --version
14-v, --verbose 更多输出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 22
3、mydumper输出文件:
- metadata:元数据 记录备份开始和结束时间,以及binlog日志文件位置。
- table data:每个表一个文件
- table schemas:表结构文件
- binary logs: 启用–binlogs选项后,二进制文件存放在binlog_snapshot目录下
- daemon mode:在这个模式下,有五个目录0,1,binlogs,binlog_snapshot,last_dump。
备份目录是0和1,间隔备份,如果mydumper因某种原因失败而仍然有一个好的快照,当快照完成后,last_dump指向该备份。
四、mydumper用例
1# mydumper -B 361way -o /opt/mysqlbak -b
2# ls
3binlog_snapshot metadata 361way.my_area-schema.sql 361way.my_area.sql
4# cat metadata
5Started dump at: 2013-09-08 11:40:21
6SHOW MASTER STATUS:
7Log: mysqld-bin.000001
8Pos: 191363
9Finished dump at: 2013-09-08 11:40:22
10# mydumper -B 361way -o /opt/mysqlbak -b -D --snapshot-interval=30
11# myloader -d /opt/mysqlbak/last_dump -o -B 361way //还原
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/mysqldumper/4741.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.