MySQL备份之mysqldump备份对象及与mysqlpump对比

我们知道mysql库里基本对象(也就是我们备份时需要关心的对象)也就如下六类:

,包含表结构,约束(主键,唯一键,外键等),当然索引这东西实际上不需要备份,也无法备份。

视图

存储过程

存储函数

触发器

事件

以上对象在全库备份时一个都不能少,否则全库备份就失去意义。


我们在使用如下命令时,实际上备份了哪些对象:

C:\Users\Administrator>mysqldump -B cms > d:\temp\mysql.cms.2016.4.1.dump

答案是:表,视图和触发器。存储函数和存储过程以及事件没有被导出。

也就是默认情况下,mysqldump仅仅备份表,视图和触发器。


如果我们要进行全库备份,那么可以像下面这样指定:

C:\Users\Administrator>mysqldump --set-gtid-purged=off -B cms -ER > d:\temp\mysql.cms.2016.4.1.dump

-E,指定导出事件(events)。

-R,指定导出存储程序(函数和过程)。


如果要导出所有schema,并且保证数据库一致性快照,那么可以指定:

C:\Users\Administrator>mysqldump --set-gtid-purged=on -AERx > d:\temp\mysql.cms.2016.4.1.dump


相比于mysqldump,新版的mysqlpump工具在处理默认导出对象时,则全面了:

mysqlpump工具,默认导出所有的六类对象。

但是mysqlpump没有 --lock-all-tables 和 --lock-tables 参数。虽然有 --single-transaction 参数,但默认也off。

所以很明显,导出的备份不是数据一致性快照。

如果我们需要使用mysqlpump备份,并且需要数据一致性快照的话,那么我们必须在pump之前手工使用 FLUSH TABLES WITH READ LOCK 锁住数据库。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值