mysqlpump备份与mysqldump相似,但它提供了一些其他功能,常用的有以下几种。

并行备份

在备份的时候可以指定线程的数量,从而起到加速备份的作用。如

  1. mysqlpump --default-parallelism=4 > full_backup.sql

甚至可以指定备份每个数据库的线程数,在使用的时候可以对较大的数据库多分配些线程数。

mysqlpump --parallel-schemas=3:db1 --parallel-schemas=2:db2,db3 --default-parallelism=4 > full_backup.sql

上述示例表示:
3个线程用来备份db1;2个线程用来备份db2和db3;还有4个线程用来备份其他数据库。

使用正则表达式排除/包含数据库对象

-- 仅备份以prod结尾的数据库
mysqlpump --include-databases=%prod --result-file=db_prod.sql

也可以使用--exclude-databases将指定的数据库从备份中移除。

  • %表示任意0个或多个字符
  • _表示任意单个字符

除了数据库和表,还可以包含或排除触发器、事件和用户。如—include-routines,—include-event,—exclude-triggers

备份用户

在mysqldump中,不会在create user或grant中获得用户的备份;相反,则必须备份mysql.user表。使用mysqlpump,可以将用户账户备份为账户管理语句,而不是将用户插入到mysql的系统表中。

mysqlpump --exclude-databases=% --users > users_backup.sql

还可以通过—exclude-users排除某些用户

mysqlpump --exclude-databases=% --exclude-users=root --users > users_without_root.sql

压缩备份

可以通过压缩备份来减少磁盘空间和网络带宽的占用。使用—compress=output = lz4 或—compress-output = zlib 。

mysqlpump -u root -pxxx --compress-output=lz4 > backup.lz4
mysqlpump -u root -pxxx --compress-output=zlib > backup.zlib

执行下列语句进行解压缩(要先有相应的解压工具)

lz4_decompress backup.lz4 backup.sql
zlib_decompress backup.zlib backup.sql