mysqlpump备份与mysqldump相似,但它提供了一些其他功能,常用的有以下几种。
并行备份
在备份的时候可以指定线程的数量,从而起到加速备份的作用。如
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