5、mysql热备--逻辑备份之mydumper的备份与恢复

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.rpm

2) 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/backup

5)优点:

  • 多线程备份
  • 文件压缩
  • 多线程恢复
  • 保证数据一致性
  • 比mysqldump备份速度和恢复都要快

你可能感兴趣的:(MYSQL,备份与恢复)