”工欲善其事,必先利其器“。数据备份是DBA的日常工作,也是保证数据安全的重要工作,要尽善尽美的完成这项工作,必须要使用一款高效可靠的备份工具。MySQL在其企业版里提供了一款备份工具——MySQL Enterprise Backup,简称MEB。

MEB是一款跨平台的高效备份工具,它支持在线”热“备份,增量备份、差异备份、部分备份、压缩备份等一系列主流的备份功能。MySQL Enterprise Backup在优化了InnoDB表备份的同时,还能够备份和恢复MySQL支持的各种存储引擎创建的表。读写过程可以由多个线程独立并行进行,并且,不同的线程可以对单个文件的不同块进行读取、写入处理,使得备份和恢复过程快速执行,相对于逻辑备份工具mysqldump有着显著的性能提升。

在介绍MEB详细内容之前,让我们看一下常见的几种数据库备份方法。

完整备份:完全备份会备份数据完整的副本。如果您不需要恢复到特定的时间点,那么只使用完整备份的策略即可满足需要。例如,如果数据不经常更改或不重要,并且可以容忍损失几天的数据,那么用户可以每天甚至每周运行完整的备份。

完整备份+增量备份:用增量备份补充完整备份,使用户能够更频繁地运行备份,并将恢复时间减少到几个小时内。增量备份不需要太多的磁盘空间,因此可以减少存储需求和成本。

完整备份+增量备份+日志:如果需要在几分钟内恢复,或者恢复到特定时间点,那么将完整备份和增量备份与事务日志备份结合起来是非常合适的。可以使用事务日志的备份应用完整备份、增量备份和前滚。

除了上述方法,备份还需要考虑备份时长、恢复时长、恢复级别、存储要求及存储的限制等因素。综合考虑后,制定适合自己的备份策略。

MEB提供了一个命令行的客户端mysqlbackup,MEB的全部功能都通过它来执行。MEB的功能非常强大,通过它可以进行如下工作:

  • 备份数据库:一个完整的备份周期包括,备份、验证和恢复。MEB支持如下类型的备份:

  • 备份到单一文件,支持将其存放到其它服务器、磁带、云存储

  • 完整备份

  • 差异备份或增量备份

  • 压缩备份

  • 部分备份

  • 乐观备份

  • 备份In-memory数据

  • 定期备份

备份时使用validate命令可以对备份结果的完整性进行验证。此外,还可以通过在另一台服务器上恢复备份数据并在新数据目录上运行mysqld来验证备份是否成功。然后可以执行SHOW语句来验证数据库和表结构,并执行查询来验证数据库的进一步细节。注意:不要将备份目录当做mysql的数据目录直接启动,会引起数据损坏!

  • 恢复数据库:MEB可以同如下方法恢复数据库:

  • 恢复压缩备份

  • 恢复加密备份

  • 恢复增量备份

  • 恢复表

  • 恢复使用-tts进行的备份

  • 恢复云存储的备份

  • 恢复表空间到不同的位置

  • 准备/恢复备份目录

  • 备份加密的InnoDB表空间:MEB支持对表空间文件加密(TDE)的数据库进行备份和恢复。

  • 使用Redo日志归档备份:MEB可以利用Redo日志归档进行备份,以防止Redo日志被覆盖引发的问题。

  • 主从复制使用MEB:通过MEB备份主服务器,并在一个新的从服务器上恢复备份来搭建主从复制,而不需要停止主服务器。

  • 群组复制使用MEB:与备份单机相同,MEB也可以用于组成员的快速备份和恢复。

  • 备份加密:MEB支持使用AES区块加密(CBC模式)对备份进行加密,以增强安全性。

  • 媒体管理软件使用MEB:MEB支持使用媒体管理软件将备份保存至大容量的存储,例如可以使用支持System Backup to Tape (SBT) API的软件将数据备份到磁带。

  • 容器使用MEB:使用企业版MySQL容器,可以对在同一个主机上的其他容器中的mysql进行备份。

介绍了MEB的功能,接下来我们看一下MEB是怎么样进行工作的。

  1. 备份InnoDB表。

备份首先通过ibbackup将InnoDB的数据文件进行压缩和复制。文件通过压缩可以达到70%~90%,并且会标记最早和最新的LSN。

2 . 备份InnoDB日志。

在复制数据文件期间积累的InnoDB日志文件,使用LSN进行复制。

只复制日志文件中包含重做信息的部分,并覆盖从备份开始到备份结束的时间。通过这个操作实现一致性。

3 .备份MyISAM表。

mysqlbackup相当于封装了ibbackup。更容易使用的接口去备份MyISAM数据和InnoDB数据,因此,它可以进行一致性的恢复。在备份期间完全可以访问InnoDB表,但是MyISAM表会有一个表锁,无法进行更新。

4 .恢复数据库

恢复数据库首先将InnoDB文件解压缩到data目录。MySQL Enterprise Backup重新创建InnoDB日志文件,并应用这些日志,以使InnoDB文件恢复到一致的状态,然后恢复MyISAM数据。

看到这里,相信有很多人关心XtraBackup和MEB的对比,在最后,介绍一下MEB相对于PXB的优势在哪里。

  • MEB可以显示备份的过程

  • MEB可以通过Oracle secure backup将数据备份到磁带

  • MEB支持离线备份

  • MEB支持备份日志文件用于时间点恢复

  • MEB可以在恢复时更改表名称

以上内容是关于MEB的简单介绍,关于它的详细使用方法请访问 "https://dev.mysql.com/doc/mysql-enterprise-backup/3.12/en/meb-getting-started.html"。

已经订阅MySQL企业版的用户可以直接下载使用,新用户可以下载30天的试用版”https://edelivery.oracle.com/“。