并发逻辑备份工具mydumper实践

来源:互联网 发布:德国布线火遍网络 编辑:程序博客网 时间:2024/05/16 11:39

并发逻辑备份工具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-libsgit clone https://github.com/maxbube/mydumper.gitcmake .make && make install

mydump常用参数

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

mysqldump和mydumper测试对比

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

对比结果

mysqldump mydumper(t=2) mydumper(t=4) mydumper(t=8) 8m28.707s 3m54.025s 4m15.256s 4m24.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=2 t=4 t=6 t=8 t=10 t=12 5m22.614s 3m11.709s 2m50.085s 2m20.515s 2m9.527s 2m5.290s

对比分析:

  1. 线程数-t越高,恢复越快,但受IO限制,在测试环境下 t>8之后收益逐渐减少。
  2. 当恢复的数据库中存在特别大的表或者只有一张表,myloader收益较低甚至没有。
  3. -q(queries-per-transaction)参数的调整暂时没有发现对测试结果有影响。
0 0
原创粉丝点击