使用myloader恢复数据教程

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

1. myloader 介绍


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


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

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

参数名 缩写 含义
--user -u 使用的用户名
--pasword -p 连接所用的用户密码
--host -h MySQL 服务端地址
--port -P MySQL 端口号
--threads -t 开启的线程数,默认是4
--directory -d 指定待恢复的备份目录
--queries-per-transaction -q 每次事务执行的查询数量,默认是1000
--overwrite-tables -o 如果要恢复的表存在,则先drop掉该表
--database -B 需要还原到哪个数据库(目标数据库)
--source-db -s 选择被还原的数据库(源数据库)
--enable-binlog -e 在恢复时开启binlog

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


image.png

image.png


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


2. myloader 恢复示例


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

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

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


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

目录
相关文章
|
存储 弹性计算 Cloud Native
【笔记】用户指南—备份与恢复—恢复数据
PolarDB-X支持通过备份恢复历史数据。本文介绍恢复数据的相关操作步骤。
139 0
【笔记】用户指南—备份与恢复—恢复数据
|
存储 SQL Cloud Native
【笔记】用户指南—备份与恢复—备份数据
PolarDB-X支持自动备份及手动备份,方便您恢复历史数据。 本文介绍数据备份的相关功能。
113 0
【笔记】用户指南—备份与恢复—备份数据
|
存储 弹性计算 Cloud Native
用户指南—备份与恢复—恢复数据
PolarDB-X支持通过备份恢复历史数据。本文介绍恢复数据的相关操作步骤。
201 0
用户指南—备份与恢复—恢复数据
|
前端开发 Java 关系型数据库
xxl-job 登入功能集成 OIDC 统一认证
xxl-job 是一款 java 开发的、开源的分布式任务调度系统,自带了登录认证功能,不支持对接、扩展 LDAP 、OIDC 等标准认证系统,考虑到单独维护 xxl-job 自有的用户系统不方便,以及存在人员离职、调岗、权限变动等需要及时调整用户权限的情况,需要接入公司统一的 OIDC 认证系统
1669 0
|
存储 关系型数据库 MySQL
mydumper备份工具介绍与使用
前面文章有介绍过 MySQL 系统自带的 mysqldump 备份工具的使用,其实还有一个开源工具 mydumper 同样适用于 MySQL 的逻辑备份。之前一直没有正式体验过,只是听说比 mysqldump 要快很多,具体使用效果如何, 一起来看下吧。
549 0
|
SQL 关系型数据库 MySQL
mydumper备份数据库详解(已详细说明)
<p></p> <p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(85,85,85); font-family:'microsoft yahei'; font-size:15px; line-height:35px"> <span style="font
15437 0
|
SQL 关系型数据库 MySQL
FLUSH TABLES WITH READ LOCK
前言 昨天碰到一个flush tables with read lock阻塞其他所有操作的案例,在博客园中6年前我已经写过一篇文章,再次拿出来分享下。 现象 id 账号 来源ip 库名 执行时间(秒) 状态 线程占用的内存(字节) SQL占用的内存(字.
7394 0
|
应用服务中间件 数据安全/隐私保护 nginx