MySQL备份教程(3)逻辑备份之mydumper与myloader
一、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
评论