7.1 备份和恢复类型

本节介绍了不同类型的备份的 Feature。

物理(原始)与逻辑备份

物理备份由存储数据库内容的目录和文件的原始副本组成。这种类型的备份适用于大型的重要数据库,这些数据库在出现问题时需要快速恢复。

逻辑备份保存 table 示为逻辑数据库结构(CREATE DATABASECREATE TABLE语句)和内容(INSERT语句或定界文本文件)的信息。这种类型的备份适用于少量数据,您可以在其中编辑数据值或 table 结构,或在其他计算机体系结构上重新创建数据。

物理备份方法具有以下 Feature:

  • 备份由数据库目录和文件的精确副本组成。通常,这是 MySQL 数据目录的全部或一部分的副本。

  • 物理备份方法比逻辑备份方法快,因为它们仅涉及文件复制而不进行转换。

  • 输出比逻辑备份更紧凑。

  • 由于备份速度和紧凑性对于繁忙,重要的数据库很重要,因此 MySQL Enterprise Backup 产品执行物理备份。有关 MySQL 企业备份产品的概述,请参见第 29.2 节“ MySQL 企业备份概述”

  • 备份和还原的粒度范围从整个数据目录的级别到单个文件的级别。这可能会或可能不会提供 table 级粒度,具体取决于存储引擎。例如,InnoDB个 table 可以分别位于单独的文件中,或与其他InnoDB个 table 共享文件存储;每个MyISAMtable 唯一地对应于一组文件。

  • 除了数据库之外,备份还可以包括任何相关文件,例如日志或配置文件。

  • MEMORYtable 中的数据很难以这种方式进行备份,因为它们的内容未存储在磁盘上。 (MySQL Enterprise Backup 产品具有一项功能,您可以在备份期间从MEMORY个 table 中检索数据.)

  • 备份只能移植到具有相同或相似硬件特性的其他计算机上。

  • 可以在 MySQL 服务器未运行时执行备份。如果服务器正在运行,则必须执行适当的锁定,以便服务器在备份期间不会更改数据库内容。 MySQL Enterprise Backup 自动为需要锁定的 table 执行此锁定。

  • 物理备份工具包括适用于InnoDB的 MySQL Enterprise Backup 的 mysqlbackup 或任何其他 table,或文件系统级命令(例如 cp,scp,tar, rsync **)用于MyISAM个 table。

  • For restore:

  • MySQL Enterprise Backup 还原InnoDB及其备份的其他 table。

    • ndb_restore恢复NDB个 table。

    • 可以使用文件系统命令将在文件系统级别复制的文件复制回其原始位置。

逻辑备份方法具有以下 Feature:

  • 通过查询 MySQL 服务器以获得数据库结构和内容信息来完成备份。

  • 备份比物理方法慢,因为服务器必须访问数据库信息并将其转换为逻辑格式。如果输出是在 Client 端编写的,则服务器还必须将其发送到备份程序。

  • 输出大于物理备份的输出,尤其是以文本格式保存时。

  • 备份和还原粒度在服务器级别(所有数据库),数据库级别(特定数据库中的所有 table)或 table 级别可用。无论存储引擎如何,都是如此。

  • 备份不包括日志或配置文件,或者不属于数据库的其他与数据库相关的文件。

  • 以逻辑格式存储的备份与计算机无关并且具有高度的可移植性。

  • 逻辑备份是在 MySQL 服务器运行的情况下执行的。服务器未脱机。

  • 逻辑备份工具包括mysqldump程序和选择...进入外档语句。它们适用于任何存储引擎,甚至MEMORY

  • 要还原逻辑备份,可以使用mysqlClient 端处理 SQL 格式的转储文件。要加载带分隔符的文本文件,请使用LOAD DATA语句或mysqlimportClient 端。

在线与离线备份

在线备份在 MySQL 服务器运行时进行,以便可以从服务器获取数据库信息。停止服务器时,将进行脱机备份。这种区别也可以描述为“热”备份与“冷”备份。 “热”备份是服务器保持运行状态,但在您从外部访问数据库文件时无法修改数据的备份。

联机备份方法具有以下 Feature:

  • 备份对其他 Client 端的干扰较小,其他 Client 端可以在备份期间连接到 MySQL 服务器,并且可以根据其需要执行的操作访问数据。

  • 必须注意施加适当的锁定,以免发生会损害备份完整性的数据修改。 MySQL Enterprise Backup 产品会自动执行这种锁定。

脱机备份方法具有以下 Feature:

  • Client 端可能会受到不利影响,因为备份期间服务器不可用。因此,此类备份通常是从复制从属服务器获取的,该复制从属服务器可以脱机使用而不会损害可用性。

  • 备份过程更简单,因为不可能受到 Client 端活动的干扰。

在线和离线之间的相似区别适用于恢复操作,并且相似的 Feature 适用。但是,与在线备份相比,在线恢复对 Client 端的影响更大,因为恢复需要更强的锁定。在备份期间,Client 端可能能够在备份数据时读取数据。恢复会修改数据,而不仅仅是读取数据,因此必须防止 Client 端在还原数据时访问数据。

本地与远程备份

本地备份是在运行 MySQL 服务器的同一主机上执行的,而远程备份是从其他主机执行的。对于某些类型的备份,即使将输出本地写入服务器,也可以从远程主机启动备份。host。

  • mysqldump可以连接到本地或远程服务器。对于 SQL 输出(CREATEINSERT语句),可以完成本地或远程转储并在 Client 端上生成输出。对于定界文本输出(使用--tab选项),将在服务器主机上创建数据文件。

  • 选择...进入外档可以从本地或远程 Client 端主机启动,但是输出文件是在服务器主机上创建的。

  • 物理备份方法通常在 MySQL 服务器主机上本地启动,以便使服务器脱机,尽管复制文件的目的地可能是远程的。

Snapshot Backups

一些文件系统实现使“快照”能够被采用。它们在给定的时间点提供文件系统的逻辑副本,而无需整个文件系统的物理副本。 (例如,该实现可以使用写时复制技术,以便仅复制在快照时间之后修改的文件系统的某些部分.)MySQL 本身不提供获取文件系统快照的功能。它可以通过 Veritas,LVM 或 ZFS 等第三方解决方案获得。

完整备份与增量备份

完整备份包括在给定时间点由 MySQL 服务器 Management 的所有数据。增量备份包括在给定时间段(从一个时间点到另一个时间点)内对数据所做的更改。 MySQL 有执行完全备份的不同方法,如本节前面所述。通过启用服务器的二进制日志,使增量备份成为可能,该日志用于服务器记录数据更改。

完整恢复时间点(增量)

完全恢复可从完全备份中还原所有数据。这会将服务器实例还原到进行备份时的状态。如果该状态不是最新状态,则可以执行完全恢复,然后恢复自完全备份以来进行的增量备份,以使服务器处于最新状态。

增量恢复是指在给定时间范围内所做的更改的恢复。这也称为时间点恢复,因为它使服务器的状态在给定时间之前为当前状态。时间点恢复基于二进制日志,通常会从备份文件进行完全恢复,从而将服务器恢复到进行备份时的状态。然后,将写入二进制日志文件中的数据更改作为增量恢复来应用,以重做数据修改并使服务器达到所需的时间点。

Table Maintenance

如果 table 损坏,数据完整性可能会受到损害。对于InnoDBtable,这不是一个典型的问题。有关检查MyISAMtable 并在发现问题时对其进行修复的程序,请参见第 7.6 节“ MyISAMtable 维护和崩溃恢复”

备份计划,压缩和加密

备份调度对于自动执行备份过程非常重要。压缩备份输出可减少空间需求,并且输出的加密可提供更好的安全性,以防止未经授权访问备份数据。 MySQL 本身不提供这些功能。 MySQL Enterprise Backup 产品可以压缩InnoDB个备份,并且可以使用文件系统 Util 来对备份输出进行压缩或加密。其他第三方解决方案也可能可用。