使用myloader恢复数据教程

103 篇文章 2 订阅
本文详细介绍了myloader作为mydumper的搭档,用于MySQL数据恢复的工具。它支持多线程、参数设置和灵活的恢复场景,包括从全备恢复单库、跨库迁移等。myloader的工作原理和使用示例有助于理解其在数据恢复中的高效应用。
摘要由CSDN通过智能技术生成

前言:

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

1. myloader 介绍

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

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

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

参数名缩写含义
–user-u使用的用户名
–pasword-p连接所用的用户密码
–host-hMySQL 服务端地址
–port-PMySQL 端口号
–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](https://img-blog.csdnimg.cn/img_convert/3f2387ab4b85b7b9e5a9057691465e7d.png#clientId=ua32aea75-74dc-4&from=paste&height=556&id=u64eeea60&margin=[object Object]&name=image.png&originHeight=1111&originWidth=1589&originalType=binary&ratio=1&size=105589&status=done&style=none&taskId=u5f8137ca-34ee-4d49-be14-439469bcb46&width=794.5)

即首先会创建一个主线程,主线程负责主逻辑,子线程为 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 记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值