前言
Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具。开发人员主要来自MySQL,Facebook,SkySQL公司。性能比自带的mysqldump强劲
github: https://github.com/mydumper/mydumper
1、安装
redhat、centos举例
1.1 安装依赖
1.1.1 安装编译库
1
|
yum install -y cmake gcc gcc-c++ git make
|
1.1.2 安装开发库
1
|
yum install -y glib2-devel mysql-devel openssl-devel pcre-devel zlib-devel libzstd-devel
|
1.1.3 安装mysql开发版库
1
2
3
|
yum install -y mysql-devel
yum install -y Percona-Server-devel-57
yum install -y mariadb-devel
|
1.2 mydumper安装
1
2
3
4
5
6
|
wget https://launchpad.net/mydumper/0.9/0.9.1/+download/mydumper-0.9.1.tar.gz
tar zxvf mydumper-0.9.1.tar.gz
cd mydumper-0.9.1
cmake .
make
make install
|
2、常用备份、还原命令
2.1 备份
1
|
mydumper -u root -p XXX -h localhost -B XXX -o /data/backup/20180916
|
2.2 恢复
1
|
myloader -u root -p XXX -h localhost -B XXX -d /data/backup/20180916
|
3、参数说明
3.1 mydumper 的常用参数
| 参数 |
说明 |
| -B |
–database 要导出的dbname |
| -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 使用正则表达式匹配 db.table |
| -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 的时间标准 |
| -K |
–kill-long-queries 将长时间执行的sql kill |
| -D |
–daemon 以守护进程的方式执行 |
| -I |
–snapshot-interval 创建导出快照的时间间隔,默认是 60s ,该参数只有在守护进程执行的时候有用。 |
| -L |
–logfile指定mydumper输出的日志文件,默认使用控制台输出。 –tz-utc SET TIME_ZONE=’+00:00’ at top of dump to allow dumping of TIMESTAMP data when a server has data in different time zones or data is being moved between servers with different time zones, defaults to on use –skip-tz-utc to disable. –skip-tz-utc –use-savepoints 使用savepoints 减少MDL 锁事件 需要 SUPER 权限 –success-on-1146 Not increment error count and Warning instead of Critical in case of table doesn |
3.2 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 |
metadata文件存储了binlog位置点和备份开始结束的时间
……