mydumper官网:https://launchpad.net/mydumper
Mydumper介绍
<代码> MySQL自身的,mysqldump工具支持单线程工作,依次一个个导出多个表,没有一个并行的机,这就使得它无法迅速的备份数据。
Mydumper作为一个实用工具,能够良好支持多线程工作,可以并行的多线程的从表中读入数据并同时写到不同的文件里,这使得它在处理速度方面快于传统的,mysqldump。其特征之一是在处理过程中需要对列表加以锁定,因此如果我们需要在工作时段执行备份工作,那么会引起DML阻塞。但一般现在的MySQL都有主,从备份也大部分在从上进行,所以锁的问题可以不用考虑。这样,Mydumper能更好的完成备份任务。代码>
Mydumper特性
<代码> 1。多线程备份
2. 因为是多线程逻辑备份,备份后会生成多个备份文件
3.备份时对MyISAM表施加FTWRL(平表读取锁),会阻塞DML语句
4. 保证备份数据的一致性
5. 支持文件压缩
6. 支持导出binlog
7. 支持多线程恢复
8. 支持以守护进程模式工作,定时快照和连续二进制日志
9. 支持将备份文件切块代码>
Mydumper安装
<代码> # git克隆https://github.com/maxbube/mydumper
# cd mydumper
#少README。医学博士(查看帮助文档,里面说明了如何编译安装以及依赖包)
# yum安装glib2-devel zlib-devel pcre-devel openssl-devel cmake
# cmake
——配置完成
——生成完成
——构建文件已经写到:/usr/local/mydumper
* *出现做配置和生成完成说明cmake成功了,如果有报错,请查看详细的屏幕输出日志
#让- j 4
# make install(会把mydumper和myloader里面安装在/usr/地方/bin/目录下)
# mydumper
# mydumper——帮助
mydumper:当加载共享库时发生错误:libmysqlclient.so。20:无法打开共享对象文件:没有这样的文件或目录(报错说明找不到这个共享库)
# ldd/usr/local/bin/mydumper
linux-vdso.so。1=比;(0 x00007ffe2aebb000)
libmysqlclient.so。20=比;没有找到
libpthread.so。0=比;/lib64/libpthread.so。0 (0 x00007fdf6d0a0000)
libm.so。6=比;/lib64/libm.so。6 (0 x00007fdf6ce1c000)
librt.so。1=比;/lib64/librt.so。1 (0 x00007fdf6cc14000)
libdl.so。2=比;/lib64/libdl.so。2 (0 x00007fdf6ca0f000)
libglib-2.0.so。0=比;/lib64/libglib-2.0.so。0 (0 x00007fdf6c6f8000)
libgthread-2.0.so。0=比;/lib64/libgthread-2.0.so。0 (0 x00007fdf6c4f4000)
libpcre.so。0=比;/lib64/libpcre.so。0 (0 x00007fdf6c2c6000)
libz.so。1=比;/lib64/libz.so。1 (0 x00007fdf6c0b0000)
libstdc + + . so。6=比;/usr/lib64/libstdc + + . so。6 (0 x00007fdf6bdaa000)
libc.so。6=比;/lib64/libc.so。6 (0 x00007fdf6ba15000)/lib64/ld - linux - x86 - 64.。2 (0 x00007fdf6d2c9000)
libgcc_s.so。1=比;/lib64/libgcc_s.so。1 (0 x00007fdf6b7ff000)
# LD_DEBUG=libs/usr/local/bin/mydumper - v
1987:=libmysqlclient.so找到图书馆。20 [0];搜索
1987年:搜索缓存=/etc/ld.so.cache
1987:搜索路径=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64(系统搜索路径)
1987:在文件=/lib64/tls/x86_64/libmysqlclient.so.20
1987年:在文件=/lib64/tls/libmysqlclient.so.20
1987年:在文件=/lib64/x86_64/libmysqlclient.so.20
1987年:在文件=/lib64/libmysqlclient.so.20
1987年:在文件=/usr/lib64/tls/x86_64/libmysqlclient.so.20
1987年:在文件=/usr/lib64/tls/libmysqlclient.so.20
1987年:在文件=/usr/lib64/x86_64/libmysqlclient.so.20
1987年:在文件=/usr/lib64/libmysqlclient.so.20
1987:/usr/local/bin/mydumper:当加载共享库时发生错误:libmysqlclient.so。20:无法打开共享对象文件:没有这样的文件或目录
#定位libmysqlclient.so.20
#我/usr/local/mysql/lib/# cp/usr/local/mysql/lib/libmysqlclient.so。20/usr/lib/# ldconfig
# ldd/usr/local/bin/mydumper
# mydumper——帮助
用法:
mydumper[选项…)多线程MySQL倾销
帮助选择:
-?,帮助显示选项
应用程序选项:
- b,数据库数据库转储
- t,表列出逗号分隔的表列表转储(不排除正则表达式选项)
- o, omit-from-file文件包含一个数据库列表。表条目跳过,每一条线(跳过前应用正则表达式选项)
- o, outputdir输出文件的目录
- s, statement-size未遂INSERT语句的大小(以字节为单位,默认1000000
- r,行试图表分割成块这么多行。这个选项关闭——chunk-filesize
- f, chunk-filesize表分割成块的输出文件的大小。这个值是MB
- c,压缩压缩输出文件
- e, build-empty-files构建转储文件即使没有数据可以从表中
为“db - x, regex正则表达式。表的匹配
我,ignore-engines存储引擎忽略的逗号分隔列表
- n, insert-ignore转储行插入忽略
- m, no-schemas不转储表与数据模式
- d,没有数据不转储表数据