mysql中备份数据库之mydumper

mydumper安装包:mydumper-0.9.1.tar.gz

mydumper简介

一般做mysql逻辑备份用mysqldump比较多,但是有一款叫mydumper的工具速度上会比mysqldump快很多。mydumper是一个针对MySQL和drizzle的高性能多线程的备份和恢复工具。此工具的开发人员分别来自MySQL、facebook、skysql公司。目前已经有一些大型产品业务测试并使用了该工具,我们在恢复数据库时也可使用myloader工具。

mydumper工具官网:https://launchpad.net/mydumper/ 


mydumper工具的主要特性包括:

  • 基于C语言开发。相比于mysqldump,其速度快了近10倍。

  • 支持多线程导出数据,速度比mysqldump快。

  • 支持多线程恢复(适用于0.2.1+)

  • 具有事务性和非事务性表一致的快照(适用于0.2.2+)。

  • 支持一致性备份,使用FTWRL(FLUSH TABLES WITH READ LOCK)会阻塞DML语句,保证备份数据的一致性。

  • 支持将导出文件压缩,节约空间。

  • 支持以守护进程模式工作,定时扫描和输出连续的二进制日志

  • 支持按照指定大小将备份文件切割。

  • 数据与建表语句分离。

  • 比mysqldump工具备份的速度和恢复速度都要快。

mydumper工具的安装

mydumper工具是基于C语言编写,需要编译安装,因此需要安装编译工具。

#centos系统可直接使用yum安装,ubuntu等其它系统请自行安装。
yum -y install glib2-devel zlib-devel pcre-devel cmake

tar -zxvf mydumper-0.9.1.tar.gz

cd mydumper-0.9.1

cmake .

make && make install

#查看mydumper版本
mydumper -V

#安装完成之后,会在如下目录生成两个可执行文件:
/usr/local/bin/mydumper    #mydumper主要负责导出    
/usr/local/bin/myloader    #myloader主要负责导入

m1.png

m2.png

m3.png

mydumper工具的备份(导出)操作

#使用mysql的root账号将test2数据库导出到/home/mydumper_back
mydumper -h 127.0.0.1 -u root -p your_password -B test2 -o /home/mydumper_back

# -o选项表示备份(导出)的数据文件保存路径,对应mydumper工具的选项是-d


进入到/home/mydumper_back目录下会看到很多文件,这些文件就保存着test2数据库中的所有表的结构以及表对应的数据,示例截图如下:

m1.png

mydumper工具的恢复(导入)操作

#使用mysql的root账号将/home/mydumper_back/目录下的所有数据文件,导入到test2数据库中
myloader -h 127.0.0.1 -u root -p your_password -B test2 -d /home/mydumper_back/

# -d选项表示恢复(导入)的数据文件路径,对应mydumper工具的选项是-o

常用选项参数说明

mydumper工具的常用参数说明如下:

-h, --host 连接的MySQL服务器地址
-u, --user 用户备份的连接用户
-p, --password 用户的密码
-P, ---port 连接端口
-S, --socket 连接socket文件
-B, --database 要导出的数据库
-T, --tables-list 需要导出的表名,导出多个表需要逗号分隔,t1[,t2,t3 ....] 
-o, --outputdir 导出数据文件存放的目录,mydumper会自动创建
-s, --statement-size 生成插入语句的字节数, 默认1000000字节
-r, --rows Try to split tables into chunks of this many rows. This option turns off --chunk-filesize
-F, --chunk-filesize 切割表文件的大小,默认单位是 MB 
-c, --compress 压缩导出的文件
-e, --build-empty-files 即使是空表也为表创建文件
-x, --regex 支持使用正则表达式匹配
-i, --ignore-engines 忽略的存储引擎,多个值使用逗号分隔
-m, --no-schemas 只导出数据,不导出建库建表语句
-d, --no-data 仅仅导出建表结构,创建db的语句
-G, --triggers 导出触发器
-E, --events 导出events
-R, --routines 导出存储过程和函数
-k, --no-locks 不执行临时的只读锁,会导致备份不一致 。WARNING: This will cause inconsistent backups
--less-locking 最小化在innodb表上的锁表时间 --butai
-l, --long-query-guard 设置长时间执行的sql的时间标准,默认60s
-K, --kill-long-queries 将长时间执行的sql kill
-D, --daemon 以守护进程的方式执行
-I, --snapshot-interval 创建导出快照的时间间隔,默认是 60s ,该参数只有在守护进程执行的时候有用
-L, --logfile 指定mydumper输出的日志文件,默认使用控制台输出,一般在Daemon模式下使用
-b, --binlogs 导出binlog
--use-savepoints 使用savepoints 减少MDL 锁事件 需要 SUPER 权限

--help 查看mydumper工具的更多选项使用说明


myloader工具的常用参数说明如下:

-d, --directory 备份文件的文件夹
-q, --queries-per-transaction 每次事物执行的查询数量,默认是1000
-o, --overwrite-tables 如果要恢复的表存在,则先drop掉该表,使用该参数,需要备份时候要备份表结构
-B, --database 需要还原的数据库
-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 显示版本
-v, --verbose 输出模式, 0 = silent, 1 = errors, 2 = warnings, 3 = info, 默认为2

--help 查看myloader工具的更多选项使用说明



时间会把对你最好的人留在后面  毕竟喜欢是一阵风  而爱是细水长流



声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

精彩评论

全部回复12人评论7,777人参与