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
2
3
4
5
6
# yum install glib2-devel mysql-devel zlib-devel pcre-devel
# wget http://launchpad.net/mydumper/0.5/0.5.1/+download/mydumper-0.5.1.tar.gz
# tar zxvf mydumper-0.5.1.tar.gz -C ../software/
# cmake .
# make
# make install

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
-B, --database 需要备份的库
 
-T, --tables-list 需要备份的表,用,分隔
 
-o, --outputdir 输出目录
 
-s, --statement-size Attempted size of INSERT statement in bytes, default 1000000
 
-r, --rows 试图分裂成很多行块表
 
-c, --compress 压缩输出文件
 
-e, --build-empty-files 即使表没有数据,还是产生一个空文件
 
-x, --regex 支持正则表达式
 
-i, --ignore-engines 忽略的存储引擎,用,分隔
 
-m, --no-schemas 不导出表结构
 
-k, --no-locks 不执行临时共享读锁 警告:这将导致不一致的备份
 
-l, --long-query-guard 长查询,默认60s
 
--kill-long-queries kill掉长时间执行的查询(instead of aborting)
 
-b, --binlogs 导出binlog
 
-D, --daemon 启用守护进程模式
 
-I, --snapshot-interval dump快照间隔时间,默认60s,需要在daemon模式下
 
-L, --logfile 日志文件
 
-h, --host
 
-u, --user
 
-p, --password
 
-P, --port
 
-S, --socket
 
-t, --threads 使用的线程数,默认4
 
-C, --compress-protocol 在mysql连接上使用压缩
 
-V, --version
 
-v, --verbose 更多输出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2
 
myloader参数介绍:
 
-d, --directory 导入备份目录
 
-q, --queries-per-transaction 每次执行的查询数量, 默认1000
 
-o, --overwrite-tables 如果表存在删除表
 
-B, --database 需要还原的库
 
-e, --enable-binlog 启用二进制恢复数据
 
-h, --host
 
-u, --user
 
-p, --password
 
-P, --port
 
-S, --socket
 
-t, --threads 使用的线程数量,默认4
 
-C, --compress-protocol 连接上使用压缩
 
-V, --version
 
-v, --verbose 更多输出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2
 
mydumper输出文件:
 
1
2
3
4
5
6
7
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
2
3
4
5
6
7
8
9
10
11
# mydumper -B ttlsa_com -o /home/data/bak -b
# ls
binlog_snapshot metadata ttlsa_com.my_area-schema.sql ttlsa_com.my_area.sql
# cat metadata
Started dump at: 2012-02-20 11:40:21
SHOW MASTER STATUS:
Log: mysqld-bin.000001
Pos: 191363
Finished dump at: 2012-02-20 11:40:22
# mydumper -B ttlsa_com -o /home/data/bak -b -D --snapshot-interval=30
# myloader -d /home/data/bak/last_dump -o -B ttlsa_com //还原

mydumper原理3的更多相关文章

  1. mydumper原理5

    前言 之前介绍了Oracle官方的多线程逻辑导入导出工具mysqlpump,但已经操作过的同学会发现其多线程的单位还是表,换句话说, 单表依然是 单线程导出 .网易早已使用mydumper/myloa ...

  2. mydumper原理4

    Mydumper是一个针对mysql和Drizzle的高性能多线程备份和恢复工具.开发人员分别来自MySQL,Facebook,SkySQL公司.目前已经在有一些大型产品业务上测试并使用了Mydump ...

  3. MySQL 逻辑备份mysqldump&mysqlpump&mydumper原理解析

    目录 准备 mysqldump备份 mysqlpump备份 mydumper备份 想弄清除逻辑备份的原理,最好的办法是开启general_log,一探究竟 准备 创建用户 CREATE USER IF ...

  4. mydumper原理1

    http://www.cnblogs.com/linuxnote/p/3817698.html?utm_source=tuicool&utm_medium=referral mydumper介 ...

  5. mydumper原理2

    使用mydumper备份发生Waiting for table flush,导致所有线程都无法读和写 版本 mydumper 0.9.1OS centos6.6 X86_64mysql 5.6.25- ...

  6. mydumper原理介绍

      mydumper的安装:http://www.cnblogs.com/lizhi221/p/7010174.html   mydumper介绍   MySQL自身的mysqldump工具支持单线程 ...

  7. mysql备份工具 :mysqldump mydumper Xtrabackup 原理

    备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(R ...

  8. mysqldump+mydumper+xtrabackup备份原理流程

    mysqldump备份原理 备份的基本流程如下: 1.调用FTWRL(flush tables with read lock),全局禁止读写 2.开启快照读,获取此时的快照(仅对innodb表起作用) ...

  9. MySQL备份原理详解

    备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(R ...

随机推荐

  1. Jemeter对Oracle数据库性能测试方法

    下载Oracle的jdbc数据库驱动包,注意Oracle数据库的版本,这里使用的是:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 ...

  2. GRID控件删除之前确认

    <asp:TemplateField HeaderText="删除新闻" ShowHeader="False"><ItemTemplate&g ...

  3. qt 在指定区域添加图片

    博客出处:http://www.devdiv.com/thread-39111-1-1.html 折腾了几天,终于实现了图片的淡出淡入的效果. 其实也应该是说实现了图片的淡入效果,因为淡出效果我暂时还 ...

  4. CentOS下编译安装hping3

    安装hping之前,先装上libpcap-dev和tcl-dev 1.获取源码包 wget http://www.hping.org/hping3-20051105.tar.gz 2.解压,得到 hp ...

  5. Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing

    Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing   ...

  6. leetcode—Plus one

      1.题目描述 Given a number represented as an array of digits, plus one to the number. 2.解法分析 不要被常规思路限制住 ...

  7. 搭建Titanium开发环境

    轻松制作 App 再也不是梦! Titanium Mobile 让你能够使用你所熟悉的 web 技术,制作出如同使用Objective-C 或 Java 写出的 Native App. 除了有多达三百 ...

  8. nova --debug image-list

    nova --debug image-list DEBUG (session:) REQ: curl -g -i -X GET http://liberty-aio:35357/v3 -H " ...

  9. python 操作 excel

    python操作execel主要是读写 读 通过 http://pypi.python.org/pypi/xlrd 写 通过 http://pypi.python.org/pypi/xlwd 下载ta ...

  10. POJ 3660 Cow Contest (Floyd)

    http://poj.org/problem?id=3660 题目大意:n头牛两两比赛经过m场比赛后能判断名次的有几头可转 化为路径问题,用Floyd将能够到达的路径标记为1,如果一个点能 够到达剩余 ...