3.mysqlpump备份

介绍

mysqlpump是一个与mysqldump非常相似的程序,带有一些额外的功能。

设置

1 并行处理

可以通过指定线程数(基于CPU数)来加快转储过程。 例如,使用八个线程进行完整备份:

shell> mysqlpump -u <user_name> -p<password> --default-parallelism=8 > full_backup.sql

假如报错如下

[ERROR] (1) A partial dump from a server that is using GTID-based replication requires the --set-gtid-purged=[ON|OFF] option to be specified. Use ON if the intention is to deploy a new replication slave using only some of the data from the dumped server. Use OFF if the intention is to repair a table by copying it within a topology, and use OFF if the intention is to copy a table between replication topologies that are disjoint and will remain so.

说明你现在使用的是GTID-based,需要根据提示加入–set-gtid-purged=[ON|OFF]参数。

  • ON: 输出中包含 SET@@GLOBAL.GTID_PURGED 语句
  • OFF: 输出中不包含 SET@@GLOBAL.GTID_PURGED 语句

因此对于使用 MySQL 5.6 及以上版本带有的 mysqldump 工具进行 MySQL 数据导出时设置该选项为 OFF。

可以指定每个数据库的线程数。

shell> mysqlpump -u <user_name> -p<password> --parallel-schemas=4:employees --default-parallelism=2 > full_backup.sql

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

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

备份以prod结尾的所有数据库:

shell> mysqlpump --include-databases=%prod --result-file=db_prod.sql

假设某些数据库中有一些测试表,并且您希望将它们从备份中排除; 可以使用–exclude-tables选项指定,该选项将在所有数据库中排除名称为test的表:

shell> mysqlpump --exclude-tables=test --result-file=backup_excluding_test.sql

每个包含和排除选项的值是以逗号分隔的相应对象类型的名称列表。 对象名称中允许使用通配符:

  • %匹配零个或多个字符的任何序列
  • _匹配任何单个字符

除了数据库和表之外,您还可以包括或排除触发器,例程,事件和用户,例如, - include-routines, - include-events和–exclude-triggers。

3 备份用户

在mysqldump中,无法在CREATE USER或GRANT语句中获得用户备份; 相反,你必须备份mysql.user表。 使用mysqlpump,可以将用户帐户转储为帐户管理语句(CREATE USER和GRANT),而不是插入到mysql系统数据库中:
其实简单说就能能备份出创建用户的语句,

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

您还可以通过指定–exclude-users选项来排除某些用户:

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

4 Compressed backups

可以压缩备份以最小化磁盘空间和网络带宽。 可以使用–compress-output = lz4或–compress-output = zlib。
前提是需要提前安装压缩与解压软件
lz4压缩

shell> mysqlpump -u root -pxxxx --compress-output=lz4 > dump.lz4

lz4解压

shell> lz4_decompress dump.lz4 dump.sql

zlib压缩

shell> mysqlpump -u root -pxxxx --compress-output=zlib > dump.zlib

zlib解压

shell> zlib_decompress dump.zlib dump.sql

5 快速重载

您会注意到在输出中,CREATE TABLE语句中省略了二级索引。 这将加快恢复过程。 使用ALTER TABLE语句在INSERT末尾添加索引。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值