备份工具mydumper

1.mydumper简介

mydumper是针对mysql的高性能多线程备份工具,备份的速度高于mysqldump,数据还原时使用myloader工具。

2.mysqldumper安装

下载地址:https://launchpad.net/mydumper/+download

首先准备安装环境,配置好yum源,安装一些依赖软件包。

yum install cmake*
yum install glib2-devel mysql-devel zlib-devel pcre-devel openssl-devel
tar -zxvf mydumper-0.9.1.tar.gz 
cd mydumper-0.9.1/

cmake .
 
make

make install

3.mydumper参数说明

-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               #不导出表数据.
-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               #使用日志文件,默认标准输出到终端.
-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连接上使用压缩协议.

4.myloader参数说明

-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           #连接上使用压缩协议.

5.使用案例

案例1:备份全库,命令如下:

mydumper -u root -p 12345678 -o /usr/local/backup_outfile/

案例2:备份mysql库,命令如下;

mydumper -u root -p 12345678 -B mysql -o /usr/local/backup_outfile/mysql/

 

案例3:还原mysql库,命令如下:

myloader -u root -p 12345678 -B mysql -d /usr/local/backup_outfile/mysql/

 案例4:备份mysql库下的example表,命令如下:

mydumper -u root -p 12345678 -B mysql -T example -o /usr/local/backup_mydumper/example/

案例5:还原mysql库下example表的命令如下:

myloader -u root -p 12345678 -B mysql -o example -d /usr/local/backup_mydumper/example/

 

案例6:备份mysql库下面的表user,example

mydumper -u root -p 12345678 -B mysql -T example,user -o /usr/local/backup_mydumper/example/

 案例7:备份mysql库下面的example表数据,不备份表结构

mydumper -u root -p 12345678 -B mysql -T example -m -o /usr/local/backup_mydumper/example/

案例8:备份mysql库下example表,并进行压缩

mydumper -u root -p 12345678 -B mysql -T example -c -o /usr/local/backup_mydumper/example/

 6.mysqldump和mydumper速度对比 

 首先使用mysqldump进行全库的备份,看消耗时间。

time mysqldump --single-transaction  -uroot -p -A > /usr/local/backup_test/all_database_20181204.sql

其次使用mydumper进行全库的备份,看消耗时间

time mydumper -u root -p 12345678 -o /usr/local/backup_test/

可以看到使用mysqldump备份全库的消耗时间是3.809s,而使用mydumper备份全库的时间是0.373秒,虽然数据量小,但仍然可以看出使用mydumper工具进行备份消耗的时间明显比使用mysqldump的时间少。同样可以使用myloader还原全库进行还原的测试,测试结果是myloader工具进行数据的还原比mysqldump要块。

7.mydumper总结 

多线程的备份工具

支持文件压缩功能

保证数据的一致性

比mysqldump的备份速度和还原速度都要快

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#慧#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值