前言上一篇介绍了mydumper备份工具的使用。文中提到mydumper和myloader是一对相互命令,即mydumper负责备份(export),myloader负责恢复(import)。那么如何使用myloader呢?我们来看看这篇文章。一、myloader介绍myloader是一个与mydumper工具配合使用的多线程备份恢复工具。它可以直接使用mydumper输出文件作为输入来恢复备份数据。主要用于并行恢复转储的sql文件。执行myloader--help查看帮助信息。同样的,我们看下myloader的相关参数:参考官方介绍。下面简单介绍一些常用的参数。我们知道myloader也是多线程的。面对mydumper备份的这么多文件,恢复时是如何顺序执行的呢?每个线程如何工作?myloader的具体工作流程可以参考下图:即首先会创建一个主线程,主线程负责主要逻辑,子线程是工作线程,执行具体的数据恢复任务。子线程执行完毕后,主线程创建函数、存储过程、事件、视图、触发器等对象。2、myloader恢复实例下面以上篇文章备份的文件为例,看看如何使用myloader恢复:#Restorealltablesinthebackupfile.如果表已经存在,则删除myloader-uroot-p123456-o-d/backups/all3#从全量备份中恢复指定的库myloader-uroot-p123456-sdb1-o-d/backups/all3#将一个数据库备份恢复到另一个数据库(目标库不存在会创建)myloader-uroot-p123456-Brecover_db1-sdb1-o-d/backups/all3myloader-uroot-p123456-Brecover_db1-o-d/backups/db1#恢复时打开binlog(需要打开时有standbydatabase)myloader-uroot-p123456-e-o-d/backups/db1#无法直接恢复单表只能找到单表的sql文件。输入命令行source执行sourcedb1.tb1-schema.sql恢复表结构sourcedb1.tb1.sql恢复表数据。可以看到使用myloader恢复数据非常方便,而且有多个参数可以选择,恢复方案也更加灵活。比如我们可以从一个完整的备份中恢复单个库,或者将一个备份恢复到一个新的库等,这些场景基本可以覆盖日常的恢复需求。虽然不支持单表恢复,但是我们可以很容易的找到在文件夹中创建表和插入数据的sql脚本。进入mysql命令行执行单个脚本也可以满足恢复单表的需求。不过需要注意的是,恢复myloader时,binlog默认是不开启的。虽然这样可以加快恢复速度,但是当有从库时,一定要注意使用-e参数开启binlog记录。
