并发逻辑备份工具mydumper实践

并发逻辑备份工具mydumper实践

  • mysqldump单线程的备份恢复机制使得线上备份900G+数据近7个多小时,恢复30G数据需要2-3小时。
  • mydumper的行级并发备份和myloder表级并发导入,理论上能够很大程度提升效率。
  • 现对mydumper和mysqldump进行有差异性的性能比较。

安装

yum -y install git cmake pcre-devel.x86_64 glib2-devel mysql-devel mysql-libs
git clone https://github.com/maxbube/mydumper.git
cmake .
make && make install

mydump常用参数

-u 用户名
-p 密码
-h 主机IP或域名
-t 线程数
-o 备份文件名
-d 不带数据
-B schema名,多个用逗号间隔
-T table名,多个用逗号间隔
-R 导出trigger
-G 导出routines

mysqldump和mydumper测试对比

数据量约为21G,备份时间如下:

对比结果

mysqldumpmydumper(t=2)mydumper(t=4)mydumper(t=8)
8m28.707s3m54.025s4m15.256s4m24.299s

对比分析

  1. mysqldump替换mydumper后,备份时间缩短一半左右
  2. mydmper中-t参数设置并非越大越好,在测试环境中,t=2反而比默认值4要快

myloader实践

myloader常用参数

-u 用户名
-p 密码
-h 主机IP或域名
-t 线程数
-d 备份文件名
-o 覆盖还原
-B 还原的schema名,可以重命名
-s 指定还原部分的schema名

不同线程数-t对恢复时间的影响

备份约4G左右,恢复时间如下:

对比结果:

t=2t=4t=6t=8t=10t=12
5m22.614s3m11.709s2m50.085s2m20.515s2m9.527s2m5.290s

对比分析:

  1. 线程数-t越高,恢复越快,但受IO限制,在测试环境下 t>8之后收益逐渐减少。
  2. 当恢复的数据库中存在特别大的表或者只有一张表,myloader收益较低甚至没有。
  3. -q(queries-per-transaction)参数的调整暂时没有发现对测试结果有影响。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值