MySQL备份教程(3)逻辑备份之mydumper与myloader

TangLu MySQL 2021-04-03 1815 0

一、mydumper介绍

mydumper是一款基于mysqldump进行过优化的逻辑备份工具,它能多线程并发备份和还原,效率比mysqldump更高。在同一服务器进行80G数据的备份还原测试,使用mydumper进行备份时间为5分钟左右,恢复时间为80分钟,相比mysqldump的备份还原,提升了2倍以上的性能。使用mydumper备份后,需要使用myloader工具进行还原


二、mydumper的备份与还原

1、安装mydumper与myloader

yum install https://github.com/maxbube/mydumper/releases/download/v0.10.1/mydumper-0.10.1-2.el7.x86_64.rpm


2、mydumper备份常用选项介绍

· -h, --host:连接的主机
· -u, --user:连接的用户
· -p, --password: 连接的用户密码
· -P, --port:连接的端口
· -S, --socket:连接使用的socket文件

· -B--database:指定需要备份的数据库,该选项只能指定单个库

· -T--tables-list:指定需要备份的表,使用英文逗号分隔

· -o--outputdir:备份文件存放路径

· -x--regex:使用正则表达式指定需要备份的库表,如"linuxe.&|mysql.*|python.study" 

· -t--threads:备份并发线程数,默认4

· -m--no-schemas:不导出表结构
· -d--no-data:
只导出表结构,不要数据


3、mydumper备份示例

#全量备份
mydumper -u root -p '123456' -h 192.168.1.100 -o /data/backup/

#指定单库备份
mydumper -u dba -p "123456" -S /tmp/mysql3314.sock --database sec_phobos_core  --threads 8  --statement-size 10000000 -o /data/backup/fubusi/

#指定表备份
mydumper -u root -p '123456' -B linuxe -T tableA,tableB -o /data/backup/

#指定表备份,仅备份数据,不包含结构
mydumper -u root -p '123456' -B linuxe -T tableA -m -o /data/backup/


4、备份所创建的SQL文件以数据库名开头,有schema的SQL文件代表是表结构创建语句,没有的是数据插入语句。另有一个metadata文件记录备份时的binlog信息,可以用于主从搭建

cat metadata
Started dump at: 2015-01-02 18:09:40 
SHOW MASTER STATUS: 
        Log: mysql-bin.000006 
        Pos: 4196075 
Finished dump at: 2015-01-02 18:09:40


5、myloader常用选项

· -h, --host:连接的主机
· -u, --user:连接的用户
· -p, --password: 连接的用户密码
· -P, --port:连接的端口
· -S, --socket:连接使用的socket文件

· -d, --directory:备份文件所在目录

· -e--enable-binlog恢复数据的时候开启binlog,如果是还原到主库架构的实例中,需要开启该选项,否则还原过程不会产生binlog,从库无法同步

· -o, --overwrite-tables:若表存在则删除
· -B, --database:需要恢复的数据库

· -t, --threads:恢复时使用的线程数,默认是4

#从备份文件中还原指定库
myloader -u root -p '123456' -B linuxe -d /data/backup/mydumper_20210330

#从备份文件中还原指定表
myloader -u root -p '123456' -B linuxe -o tableA -d /data/backup/mydumper_20210330

#还原pandora数据库到主从架构的实例
myloader -u "dba" -p '123456' -S /tmp/mysql30009.sock -B pandora -e -d /data/backup/pandora/

#实测发现单表恢复需要用mysql工具进行恢复
mysql -udba -p"123456" -S /tmp/mysql3333.sock linuxe < linuxe.test.sql


评论