mydumper是多线程备份工具,默认开启4个线程,比mysqldump的速度更快

mydumper备份时,数据和表结构是分开的,比如备份test表时,会生成test.sql文件和test.schema.sql文件。

myloader导数据的时候默认不会记录二进制日志,即使你的sql_log_bin=on.


准备安装介质:

下载mydumper-0.6.2.tar.gz

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


安装依赖包:

# yum install glib2-devel mysql-devel zlib-devel pcre-devel


编译安装

# tar zxvf mydumper-0.6.2.tar.gz 

# cd mydumper-0.6.2

# mkdir bin

# cd bin

# cmake ../

# make

# make install


安装好后可以看到/usr/local/bin目录下面多了mydumper和myloader两个命令


# ll /usr/local/bin/

total 188

-rwxr-xr-x 1 root root 132868 Aug  3 22:51 mydumper

-rwxr-xr-x 1 root root  47491 Aug  3 22:51 myloader



# ./mydumper  --database=test --outputdir=/data/backup/test

./mydumper: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory


创建软链接即可解决这个报错:

# ln -s /usr/local/mysql/lib/libmysqlclient.so.18/usr/lib/

# ldconfig -v


导出:

# mydumper  --database=test --outputdir=/data/backup/test


导入:

#  myloader  -B test  -d /data/backup/test


利用备份建从库:

cd /data/backup/test

里面有一个metadata文件,这个文件记录的是当前的binlog文件及pos,可以使用这个信息搭建从库 



mydumper参数介绍:

  -B, --database              备份数据库

  -T, --tables-list           备份表列表,多个表以“,”逗号分隔

  -o, --outputdir             指定备份目录

  -s, --statement-size        insert长度,单位是byte, default 1000000,这个参数不能太小,不然会报 Row bigger than statement_size for tools.t_serverinfo

  -r, --rows                  分割表,多少行记录为一个chunk. 默认是off的

  -F, --chunk-filesize        分割表,以多个文件备份,单位是MB

  -c, --compress              压缩备份

  -e, --build-empty-files     如果表没有数据,还是创建这个文件

  -x, --regex                 正则匹配数据库、表,如db.table1

  -i, --ignore-engines        忽略指定引擎的表

  -m, --no-schemas            不备份表结构

  -k, --no-locks              不加临时的share read lock,这个可能会造成数据不一致

  --less-locking              innodb表时,最小时间lock

  -l, --long-query-guard      设置最长查询时间,默认是60s

  -K, --kill-long-queries     将长查询进行杀掉

  -D, --daemon                开启守护进程模式

  -I, --snapshot-interval     快照时间,默认是60s

  -L, --logfile               日志文件,默认是标准输出

  --tz-utc                    设置时区,只有备份应用到不同时区的时使用,默认是 --skip-tz-utc是关闭的.

  --skip-tz-utc               

  --use-savepoints            Use savepoints to reduce metadata locking issues, needs SUPER privilege

  --success-on-1146           Not increment error count and Warning instead of Critical in case of table doesn't exist

  --lock-all-tables           Use LOCK TABLE for all, instead of FTWRL

  -h, --host                  主机

  -u, --user                  用户

  -p, --password              密码

  -P, --port                  端口

  -S, --socket                socket文件

  -t, --threads               并发线程数,默认是4

  -C, --compress-protocol     Use compression on the MySQL connection

  -V, --version               Show the program version and exit

  -v, --verbose               Verbosity of output, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2