Mydumper主要特性:是一个针对MySQL的高性能多线程备份和恢复工具,开发人员主要来自MySQL,Facebook,SkySQL公司。

特性:
1:轻量级C语言写的
2:执行速度比mysqldump快10倍
3:事务性和非事务性表一致的快照(适用于0.2.2以上版本)
4:快速的文件压缩
5:支持导出binlog
6:多线程恢复(适用于0.2.1以上版本)
7:以守护进程的工作方式,定时快照和连续二进制日志(适用于0.5.0以上版本)
8:开源 (GNU GPLv3)

安装地址及安装方法:
yum install glib2-devel mysql-devel zlib-devel pcre-devel zlib gcc-c++ gcc cmake -y
wget https://launchpadlibrarian.net/225370879/mydumper-0.9.1.tar.gz
tar xf mydumper-0.9.1.tar.gz
cd mydumper-0.9.1/
cmake .
make && make install

下面是percona-xtrabackup和mydumper压缩备份后的大小:
[root@test-5-69 bak]# du -sh *
3.3G 2017-02-09_04-00-02
3.3G 2017-02-10_04-00-02
3.3G 2017-02-11_04-00-02
3.3G 2017-02-12_04-00-02
3.3G 2017-02-13_04-00-02
3.3G 2017-02-14_04-00-02
3.3G 2017-02-15_04-00-02
852M all_20170215

在测试库中使用的优势:
mydumper导出的形式是每个表一个文件,对开发和测试误操作恢复十分有效。而percona-xtrabackup是对全库,恢复也是全库。 对单个表误操作恢复繁琐。

mydumper备份后的存储格式:
[root@test-5-69 all_20170215]# ls
jxcommoninfo.orderinfo-schema.sql.gz jxorder.ord_OrderCount.sql.gz metadata
jxcommoninfo.orderinfo.sql.gz jxorder.ord_OrderExchangeCodeDetail-schema.sql.gz mysql.columns_priv-schema.sql.gz
jxcommoninfo-schema-create.sql.gz jxorder.ord_OrderExchangeCodeDetail.sql.gz mysql.db-schema.sql.gz
jxorder.checksums-schema.sql.gz jxorder.ord_OrderExt-schema.sql.gz mysql.db.sql.gz
jxorder.dsns-schema.sql.gz jxorder.ord_OrderExt.sql.gz mysql.event-schema.sql.gz
jxorder.dsns.sql.gz jxorder.ord_OrderMarkLog-schema.sql.gz mysql.func-schema.sql.gz
jxorder.dz_packingMaterialsOrder-schema.sql.gz jxorder.ord_OrderMark-schema.sql.gz mysql.help_category-schema.sql.gz

[root@test-5-69 all_20170215]# mydumper --help
Application Options:
-B, --database 需要备份的数据库,一个数据库一条命令备份,要不就是备份所有数据库,包括mysql。
-T, --tables-list 需要备份的表,用逗号分隔。
-o, --outputdir 备份文件目录
-s, --statement-size 生成插入语句的字节数,默认1000000,这个参数不能太小,不然会报 Row bigger than statement_size for tools.t_serverinfo
-r, --rows 试图用行块来分割表,该参数关闭--chunk-filesize
-F, --chunk-filesize 行块分割表的文件大小,单位是MB
-c, --compress 压缩输出文件
-e, --build-empty-files 即使表没有数据,也产生一个空文件
-x, --regex 正则表达式匹配,如'db.table'
-i, --ignore-engines 忽略的存储引擎,用逗号分隔
-m, --no-schemas 不导出表结构
-d, --no-data 不导出表数据
-G, --triggers 导出触发器
-E, --events 导出事件
-R, --routines 导出存储过程
-k, --no-locks 不执行共享读锁 警告:这将导致不一致的备份
--less-locking 减到最小的锁在innodb表上.
-l, --long-query-guard 设置长查询时间,默认60秒,超过该时间则会报错:There are queries in PROCESSLIST running longer than 60s, aborting dump
-K, --kill-long-queries kill掉长时间执行的查询,备份报错:Lock wait timeout exceeded; try restarting transaction

-D, --daemon 启用守护进程模式
-I, --snapshot-interval dump快照间隔时间,默认60s,需要在daemon模式下
-L, --logfile 使用日志文件,默认标准输出到终端
--tz-utc 备份的时候允许备份Timestamp,这样会导致不同时区的备份还原会出问题,默认关闭,参数:--skip-tz-utc to disable.
--skip-tz-utc
--use-savepoints 使用保存点记录元数据的锁信息,需要SUPER权限
--success-on-1146 Not increment error count and Warning instead of Critical in case of table doesn't exist
--lock-all-tables 锁全表,代替FLUSH TABLE WITH READ LOCK
-U, --updated-since Use Update_time to dump only tables updated in the last U days
--trx-consistency-only Transactional consistency only
-h, --host The host to connect to
-u, --user Username with privileges to run the dump
-p, --password User password
-P, --port TCP/IP port to connect to
-S, --socket UNIX domain socket file to use for connection
-t, --threads 备份执行的线程数,默认4个线程
-C, --compress-protocol 在mysql连接上使用压缩协议
-V, --version Show the program version and exit
-v, --verbose 更多输出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2

[root@test-5-69 all_20170215]# myloader --help
Application Options:
-d, --directory 备份文件所在的目录
-q, --queries-per-transaction 每个事务的query数量, 默认1000
-o, --overwrite-tables 如果表存在则先删除,使用该参数,需要备份时候要备份表结构,不然还原会找不到表
-B, --database 指定需要还原的数据库
-s, --source-db 还原的数据库
-e, --enable-binlog 启用二进制日志恢复数据
-h, --host The host to connect to
-u, --user Username with privileges to run the dump
-p, --password User password
-P, --port TCP/IP port to connect to
-S, --socket UNIX domain socket file to use for connection
-t, --threads 使用的线程数量,默认4
-C, --compress-protocol 连接上使用压缩协议
-V, --version Show the program version and exit
-v, --verbose 更多输出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2

#!/bin/sh
. /etc/profile

DIR='/my/bak/'
DATE=`date +%Y%m%d_%H-%M`

/usr/local/bin/mydumper -c -o $DIR$DATE

find $DIR -mindepth 1 -maxdepth 1 -type d -mtime +3 -exec rm -rf {} \;

【备份工具】mydumper的更多相关文章

  1. MySQL多线程备份工具:mydumper

    MySQL多线程备份工具:mydumper http://www.orczhou.com/index.php/2011/12/how-to-split-mysqldump-file/ Mydumper ...

  2. MySQL多线程备份工具mydumper

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

  3. MySQL数据库之多线程备份工具mydumper

    Mydumper介绍: 1)Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具 2)特性: 轻量级C语言编写 执行速度比mysqldump快10倍 快速的文件压缩 支持导 ...

  4. MySQL多线程备份工具mydumper 之 RDS外部实例迁移平台

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 1.Format_description_event问题: BINLOG ' kTXkUxMKAAAALQA ...

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

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

  6. mysql多线程备份与还原工具mydumper

    (一)mydumper介绍 之前我们已经学过如何使用mysqldump备份恢复数据库:<mysql逻辑备份与还原工具mysqldump>,就目前来说,mysqldump是使用最广泛的MyS ...

  7. 官方出品,比 mydumper 更快的逻辑备份工具

    mysqldump 和 mydumper 是我们常用的两个逻辑备份工具. 无论是 mysqldump 还是 mydumper 都是将备份数据通过 INSERT 的方式写入到备份文件中. 恢复时,myl ...

  8. MySQL 5.7 mysqlpump 备份工具说明

    背景: MySQL5.7之后多了一个备份工具:mysqlpump.它是mysqldump的一个衍生,mysqldump就不多说明了,现在看看mysqlpump到底有了哪些提升,可以查看官方文档,这里针 ...

  9. MySQL 5.7 新备份工具mysqlpump 使用说明 - 运维小结

    之前详细介绍了Mysqldump备份工具使用,下面说下MySQL5.7之后新添加的备份工具mysqlpump.mysqlpump是mysqldump的一个衍生,mysqldump备份功能这里就不多说了 ...

  10. MySQL 逻辑备份工具

    简介: Mydumper.Myloader 是一个第三方的.开源的 MySQL 逻辑备份工具. 支持多线程,比起 mysqldump 要快很多,也能解决 innobackupex 备份工具对 MyIS ...

随机推荐

  1. 00.pip安装包

    pip安装更换镜像源 pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com pip导出和导入 ...

  2. C++数组查重

    今天课上实验课,遇到一道题目,需要查找一个数组中出现次数最多的元素和次数,并且输出.第一次用struct模拟字典,十分麻烦而且复杂度是O(n*n).其实,运用转化的思想,可以先将其排序,然后再查找即可 ...

  3. 7-19 求链式线性表的倒数第K项

    7-19 求链式线性表的倒数第K项(20 分) 给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字. 输入格式: 输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示 ...

  4. 获取当前日期,或指定日期的农历js代码

    时间不早了,直接上代码啦-- var CalendarData=new Array(100);var madd=new Array(12);var tgString="甲乙丙丁戊己庚辛壬癸& ...

  5. SIM900A 发送AT+CSTT 总是 返回Error的原因分析

    检查 模块的供电是否正常 本例 修改供电后 联网恢复正常.

  6. Spring MVC-处理程序映射(Handler Mapping)-简单的Url处理程序映射(Simple Url Handler Mapping)示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_simpleurlhandlermapping.htm 说明:示例基于Spring ...

  7. LinkedList,ArrayList末尾插入谁效率高?

    废话不多说,原因不解释.上測试代码: package com.letv.cloud.cdn.jtest; import java.io.IOException; import java.util.Ar ...

  8. javascript 获取当前对象

    <a href="dsfjlsdjf" onclick="testGet()"> 请教编写testGet()函数获取这个超链接href属性,限制例如 ...

  9. poj 1256 Anagram—next_permutation的神奇应用

    题意:给你一条字符串,让你输出字符串中字符的全排列,输出的顺序要按它给的奇葩的字典序. 题解:要输出全排列,暴力dfs可以过,但要注意题目的字典序以及相同字符的情况.如果用next_permutati ...

  10. 多个结果显示成一个group_concat函数

    需求:获取班级.课程中文名.老师 扩展:一个班级一门课程,老师可能多个,想把多个教师显示成在一个结果里 解决方案:加个group by 参考资料:https://www.cnblogs.com/zhu ...