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主要负责导入
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数据库中的所有表的结构以及表对应的数据,示例截图如下:
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工具的更多选项使用说明
时间会把对你最好的人留在后面 毕竟喜欢是一阵风 而爱是细水长流
声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。
精彩评论