一篇学会如何使用 Myloader 恢复数据

开发 前端
文中有提到 mydumper 和 myloader 是一对相互的命令,即 mydumper 负责备份(导出),myloader 负责恢复(导入)。那么 myloader 又该如何使用呢?

[[429115]]

前言

上篇文章介绍了 mydumper 备份工具的使用方法,文中有提到 mydumper 和 myloader 是一对相互的命令,即 mydumper 负责备份(导出),myloader 负责恢复(导入)。那么 myloader 又该如何使用呢?本篇文章我们一起来看下。

1. myloader 介绍

myloader 是与 mydumper 工具配合使用的多线程备份恢复工具,可以直接以 mydumper 输出文件为输入,恢复备份数据。主要用于将 dump 出来的 sql 文件以并行的方式进行恢复。

执行 myloader --help 可以查看帮助信息,同样的,我们来看下 myloader 相关参数:

参考官方介绍,以下简要说明部分常用的参数。

我们知道,myloader 也是多线程的,面对 mydumper 备份出来的那么多文件,恢复的时候是如何顺序执行的呢?各个线程是如何工作的?myloader 具体工作流程可参考下图:

即首先会创建一个主线程,主线程负责主逻辑,子线程为 worker 线程,执行具体恢复数据任务,子线程执行完成后再由主线程创建函数、存储过程、事件及视图、触发器这些对象。

2. myloader 恢复示例

我们以上篇文章备份出的文件为例,来看下如何用 myloader 进行恢复:

  1. # 恢复备份文件中的全部 若表已存在则先删除 
  2. myloader -u root -p 123456 -o -d /backups/all3 
  3.  
  4. # 从全备中恢复指定库 
  5. myloader -u root -p 123456 -s db1 -o -d /backups/all3 
  6.  
  7. # 将某个数据库备份还原到另一个数据库中(目标库不存在则会新建) 
  8. myloader -u root -p 123456 -B recover_db1 -s db1 -o -d /backups/all3 
  9. myloader -u root -p 123456 -B recover_db1 -o -d /backups/db1 
  10.  
  11. # 恢复时开启binlog(有备库的时候需要开启) 
  12. myloader -u root -p 123456 -e -o -d /backups/db1 
  13.  
  14. # 无法直接还原单表 只能找到单表的sql文件 进入命令行source 执行 
  15. source db1.tb1-schema.sql 还原表结构 
  16. source db1.tb1.sql 还原表数据 

可以看到使用 myloader 恢复数据还是很方便的,并且有多个参数可选,恢复场景也更加灵活。比如我们可以从全备中恢复出单个库,或者将备份恢复到一个新库中等等,这些场景基本能覆盖日常恢复需求。虽然不支持单表恢复,但我们可以到文件夹中轻松找到该表的建表及插数据的 sql 脚本,进入 mysql 命令行中再执行单个脚本也能实现恢复单表的需求。 

不过要注意的是 myloader 恢复时默认不开启 binlog,这虽然可以加快恢复速度,但是当存在从库时,一定要注意使用 -e 参数来打开 binlog 记录。

 

责任编辑:武晓燕 来源: MySQL技术
相关推荐

2022-01-02 08:43:46

Python

2023-11-29 13:59:00

trait定义接口

2022-01-01 20:02:25

Metadata动态元数据

2021-12-07 08:50:40

字母区间字符串

2021-12-28 07:20:43

Hippo WebAssembly云原生

2022-01-12 07:36:01

Java数据ByteBuffer

2022-02-07 11:01:23

ZooKeeper

2023-12-07 07:14:36

WebpackVite

2021-07-06 08:59:18

抽象工厂模式

2021-05-11 08:54:59

建造者模式设计

2021-07-05 22:11:38

MySQL体系架构

2023-01-03 08:31:54

Spring读取器配置

2023-11-28 08:29:31

Rust内存布局

2021-07-02 09:45:29

MySQL InnoDB数据

2022-08-26 09:29:01

Kubernetes策略Master

2022-08-23 08:00:59

磁盘性能网络

2021-09-07 09:20:44

Hadoop数据容错

2021-07-02 08:51:29

源码参数Thread

2021-10-27 09:59:35

存储

2023-11-01 09:07:01

Spring装配源码
点赞
收藏

51CTO技术栈公众号