mydumper原理

关于mysql的逻辑导出目前的工具有mysqldump、mysqlpump、mydumper 这三个工具。其中mysqldump是单线程的导出。mysqldump是mysql5.7新增加的一个工具,多线程的并行导出,但是其是表级别的并行(对于单个表还是不能并行)。mydumper是开源的一个多线程并行逻辑导出工具,且是行级别的并行导出。


mydumper原理


主线程负责建立数据一致性备份点、初始化工作线程和为工作线程推送备份任务:

1、对备份实例加读锁,阻塞写操作以建立一致性数据备份快照点,记录备份点BinLog信息;
2、创建工作线程,初始化备份任务队列,并向队列中推送数据库元数据(schema)、非InnoDB表和InnoDB表的备份任务;
3、工作线程负责将备份任务队列中的任务按顺序取出并完成备份:
4、分别建立与备份实例连接,将session的事务级别设置为repeatable-read,用于实现可重复读;
5、在主线程仍持有全局读锁时开启事务进行快照读,这样保证了读到的一致性数据与主线程相同,实现了备份数据的一致性;
6、按序从备份任务队列中取出备份任务,工作线程先进行MyISAM等非InnoDB表备份,再完成InnoDB表备份;这样可以在完成非InnoDB表备份通知后主线程释放读锁,尽可能减小对备份实例业务的影响;

mydumper的记录级备份由主线程负责任务拆分&#x

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 `mydumper` 在机器A备份数据并将其传输到机器B,您可以按照以下步骤操作: 在机器A上执行以下步骤: 1. 安装 `mydumper` 工具: ```bash sudo apt-get install mydumper ``` 2. 创建一个用于备份的目录: ```bash mkdir backup_directory ``` 3. 运行 `mydumper` 命令进行备份: ```bash mydumper --outputdir=backup_directory --host=机器A的IP地址 --user=用户名 --password=密码 --threads=4 ``` 其中,`backup_directory` 是备份文件输出目录,`机器A的IP地址` 是机器A的实际IP地址,`用户名` 和 `密码` 是连接到机器A的MySQL数据库所需的凭据,`--threads=4` 指定使用4个线程进行备份。 在机器B上执行以下步骤: 1. 在机器B上创建一个目录用于接收备份文件。 2. 使用 `scp` 命令将备份文件从机器A传输到机器B: ```bash scp -r 用户名@机器A的IP地址:/path/to/backup_directory /path/to/destination_directory ``` 其中,`用户名` 和 `机器A的IP地址` 是连接到机器A的凭据,`/path/to/backup_directory` 是机器A上的备份文件目录,`/path/to/destination_directory` 是机器B上接收备份文件的目录。 这样,您就可以使用 `mydumper` 工具在机器A备份数据,并将备份文件传输到机器B。 请注意,上述步骤假设您已经在机器A和机器B上安装了必要的软件,且已经配置好了网络连接和凭据。确保在执行任何操作之前备份重要数据,并根据实际情况进行适当的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值