这篇文章给大家分享的是有关mydumper有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
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有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!