mysql备份工具对比

MySQL各种备份工具的速度

大家在备份的时候可以参考一下,使用那种比较顶呱呱~

原文博客
https://www.percona.com/blog/dump-performance-comparison-mysqldump-vs-mysql-shell-utilities-vs-mydumper/
老外对比了

  • mysqldump

  • mysql shell instance dump

  • mysqlpump

  • mydumper

  • xtrabackup

    这些工具在备份一个库的速度,硬件 128G内存,32核CPU,600GB磁盘,备份的实例 177 GB。


    image.png

那我们可以观察到啥呢?

  • mydumper 在使用zstd 这种压缩方式,快的一比,这个压缩的选项在最近的mydumper才会呢,快点去试试吧MyDumper 0.11.3
  • mydumper 在使用gzip这种压缩方式慢的一比。
  • mysqldump太慢了。

各类工具版本
32 CPUs
128GB Memory
2x NVMe disks 600 GB
Centos 7.9
MySQL 8.0.26
MySQL shell 8.0.26
mydumper 0.11.5 – gzip
mydumper 0.11.5 – zstd
Xtrabackup 8.0.26

备份命令如下

mysqldump
$ time mysqldump --all-databases --max-allowed-packet=4294967295 --single-transaction -R --master-data=2 --flush-logs | gzip > /backup/dump.dmp.gz
mysql shell
$ mysqlsh MySQL JS > shell.connect('root@localhost:3306'); MySQL localhost:3306 ssl test JS > util.dumpInstance("/backup", {ocimds: true, compatibility: ["strip_restricted_grants","ignore_missing_pks"],threads: 16})

mydumper
$ time mydumper --threads=16 --trx-consistency-only --events --routines --triggers --compress --outputdir /backup/ --logfile /backup/log.out --verbose=2
*注意,你要是想使用zstd 上面的命令你不需要改,你需要下载这个github.com

mysqlpump
$ time mysqlpump --default-parallelism=16 --all-databases > backup.out

xtrabackup
$ time mysqlpump --default-parallelism=16 --all-databases > backup.out

你可能感兴趣的:(mysql备份工具对比)