首页 > 代码库 > mydumper与mysqldump测试备份与还原

mydumper与mysqldump测试备份与还原

条件:

同一台centos服务器,2核4G

mysql5.5版本

同一个备份数据


  1. 将ceshi20141030.gz解压缩后恢复到数据库里

mysql -u root -pqwer123

mysql>use ceshi;

mysql>source webgame20141030


结果:导入进去用时66分钟,然后再次用mysqldump备份压缩出来用时17分钟

mysqldump   -R --skip-tz-utc  --default-character-set=utf8 ceshi-u root -pqwer123 | gzip >/data/ceshi20141030.gz


2.用mysqldumper进行备份

mydumper -u root-p ‘qwer123‘ -B ceshi -0 /data/0923/

zip -r 0923.zip 0923

rm -rf 0923

结果:用mydumper备份出来用时5分钟,但是需要压缩,时间耗时6分钟,加起来用了11分钟,备份比mysqldump用时快了超过1/3,


测试解压:解压后大小比mysqldump导出压缩的大2M,不压缩大0.2G


3.mysqldumper进行恢复

     删除原来的数据库;再新建

myloader -d /home/0923/ -o -B ceshi-u root -p ‘qwer123‘


结果:恢复数据用时42分钟,比mysqldump快了1/3


mydumper是支持多线程工作,速度与CPU数量有关,使用时CPU占用很高

mysqldump只支持单线程工作,效率比较低所以



mydumper参数介绍


-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输出文件:

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指向该备份。


本文出自 “运维” 博客,请务必保留此出处http://yangxiongchun.blog.51cto.com/1353054/1569799

mydumper与mysqldump测试备份与还原