mydumper是针对mysql和drizzle的多线程备份工具,备份速度远远高于mysqldump,备份形式属于逻辑备份,数据还原时,使用myloader工具。
※ mysqldump是单线程工作的工具,只能逐个表导出。
1)mydumper安装
mydumper安装所依赖的软件包,glibc, zlib, pcre, pcre-devel, gcc, gcc-c++, cmake, make, mysql客户端库文件
yum install https://github.com/maxbube/mydumper/releases/download/v0.9.5/mydumper-0.9.5-1.el7.x86_64.rpm2) mydumper和myloader语法重点参数详解
mydumper使用参数说明 -B,--database: 需要备份的数据库 -T,--tables-list: 需要备份的表,多表用逗号隔开 -o,--outputdir :输出文件的目录 -s,--statment-size:生成insert语句的字节数,默认10000000 -r,--rows:将表按行分块时,指定的块行数,指定该选项会关闭--chunk-filesize -F,--chunk-filesize:将表按大小分块时,指定的块大小,单位MB -c,--compress:压缩输出文件 -e,--build-empty-files:即使表没有数据,还是产生一个空文件 -x,--regex:正则表达式:'db.table' -i,--ignore-engines:忽略存储引擎,用逗号分开 -m,--no-schemas:不导出表结构 -k,--no-locks:不执行共享读锁,警告,这将导致不一致的备份 -l,--long-query-guard:设置长查询时间,默认60秒 -K,--kill-long-queries:“kill”掉长时间查询 -D,--daemon:启用守护进程模式 -I,--snapshot-interval dump:快照间隔时间,默认60s,需要在daemon模式下 -L,--logfile:日志文件 -h,--host:MySQL服务器IP地址 -u,--user:备份时使用的用户名 -p,--password:用户密码 -P,--port:数据库连接端口号 -S,--socket:套接字文件 -t,--thread:使用的线程数,默认4个 -C,--compress-protocol:在MySQL上使用压缩协议 myloader参数说明 -d,--directory:备份文件的目录 -q,--queries-per-transaction:每次事务执行的查询数量,默认1000 -o,--overwrite-tables:如果要恢复的表存在,则先drop掉该表 -B,--database:需要还原的数据库 -e,--enable-binlog:启用还原数据库的二进制日志 -h,--host:MySQL服务器的ip -u,--user:还原时使用的数据库用户名 -p,--password:用户的密码 -P,--port:数据库连接端口号 -S,--socket:套接字文件 -t,--thread:使用的线程数,默认4个 -C,--compress-protocol:在MySQL上使用压缩协议3)备份数据库
// 备份全库 mydumper -u root -p 123 -o /tmp/backup/ // 备份db1库 mydumper -u root -p 123 -B db1 -o /tmp/backup // 备份db1库t1表 mydumper -u root -p 123 -B db1 -T t1 -o /tmp/backup // 备份多张表 mydumper -u root -p 123 -B db1 -T t1,t2 -o /tmp/backup // 备份db1库t1表,不备份表结构 mydumper -u root -p 123 -B db1 -T t1 -m -o /tmp/backup // 备份db1库t1表并压缩 mydumper -u root -p 123 -B db1 -T t1 -c -o /tmp/backup※备份目录下游metadata的目录,里面记载着binlog和position号,方便日后搭建slave库
4)还原数据
// 还原db1 myloader -u root -p 123 -B db1 -d /tmp/backup/ // 还原db1的t1表 myloader -u root -p 123 -B db1 -o t1 -d /tmp/backup5)优点:
多线程备份文件压缩多线程恢复保证数据一致性比mysqldump备份速度和恢复都要快