Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  Backup and Recovery  /  Backup and Recovery Types

9.1 备份和恢复类型

本节描述了不同备份类型的特点。

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

逻辑备份保存逻辑数据库结构(CREATE DATABASECREATE TABLE 语句)和内容(INSERT 语句或分隔文本文件)。这种备份类型适用于小规模数据,您可能会编辑数据值或表结构,或者在不同机器架构上重新创建数据。

物理备份方法具有以下特点:

  • 备份包括数据库目录和文件的exact副本。通常,这是一个MySQL数据目录的部分或全部副本。

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

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

  • 由于备份速度和紧凑性对于繁忙、重要的数据库非常重要,MySQL Enterprise Backup产品执行物理备份。关于MySQL Enterprise Backup产品的概述,请参见第32.1节,“MySQL Enterprise Backup 概述”

  • 备份和恢复的粒度从整个数据目录到单个文件之间,这可能或不可能提供表级别的粒度,取决于存储引擎。例如,InnoDB 表可以每个独立文件,也可以与其他InnoDB 表共享文件存储;每个MyISAM 表对应唯一的文件集。

  • 备份还可以包括相关文件,如日志或配置文件。

  • MEMORY 表中获取数据非常困难,因为它们的内容不存储在磁盘上。(MySQL Enterprise Backup 产品有一个特性,可以在备份时从MEMORY 表中检索数据。)

  • 备份只能在具有相同或相似硬件特征的其他机器上使用。

  • 可以在 MySQL 服务器不运行的情况下进行备份。如果服务器正在运行,需要执行适当的锁定,以防止服务器在备份期间更改数据库内容。MySQL Enterprise Backup 对需要锁定的表自动执行锁定。

  • 物理备份工具包括 MySQL Enterprise Backup 的 mysqlbackupInnoDB 或其他表,或者文件系统级命令(如cpscptarrsync)对MyISAM 表。

    • MySQL Enterprise Backup 可以恢复它备份的InnoDB 和其他表。

    • ndb_restore恢复NDB表。

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

逻辑备份方法具有以下特点:

  • 备份是通过查询 MySQL 服务器来获取数据库结构和内容信息进行的。

  • 备份速度比物理方法慢,因为服务器必须访问数据库信息并将其转换为逻辑格式。如果输出写入客户端,服务器还需要将其发送给备份程序。

  • 输出比物理备份大,特别是在文本格式下保存时。

  • 备份和恢复的粒度可在服务器级别(所有数据库)、数据库级别(某个数据库中的所有表)或表级别。无论存储引擎如何都是如此。

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

  • 逻辑格式存储的备份在机器之间高度可移植。

  • 逻辑备份是在 MySQL 服务器运行状态下进行的。服务器不会被关闭。

  • 逻辑备份工具包括mysqldump程序和SELECT ... INTO OUTFILE语句。这些工具适用于任何存储引擎,包括MEMORY

  • 可以使用mysql 客户端来恢复逻辑备份文件。要加载分隔文本文件,可以使用LOAD DATA 语句或mysqlimport 客户端。

在线备份是在 MySQL 服务器正在运行时进行的,以便从服务器获取数据库信息。离线备份是在服务器停止时进行的。这也可以用 versus 备份来描述;一个 备份是服务器保持运行,但锁定对数据的修改以便外部访问数据库文件。

  • 在线备份方法具有这些特点:

  • 备份对其他客户端不太影响,客户端可以在备份过程中连接到 MySQL 服务器并根据需要访问数据。

  • 离线备份方法具有这些特点:

  • 客户端可能受到影响,因为服务器不可用。因此,这些备份通常从可以脱机的副本中进行。

恢复操作与备份操作之间也存在类似的区别,同样具有相似特征。然而,对于恢复操作,客户端更容易受到影响,因为恢复需要更强的锁定。在备份过程中,客户端可能可以读取正在被备份的数据,而恢复操作修改了数据,不仅仅是读取,因此客户端必须在数据被恢复时不能访问。

本地备份是在 MySQL 服务器运行的主机上进行,而远程备份是在不同的主机上进行。对于某些类型的备份,备份可以从远程主机启动,即使输出写入到服务器主机上。

  • mysqldump 可以连接到本地或远程服务器。对于 SQL 输出(CREATEINSERT 语句),可以在客户端上进行本地或远程备份,并生成输出结果。对于分隔文本输出(使用 --tab 选项),数据文件创建在服务器主机上。

  • SELECT ... INTO OUTFILE 可以从本地或远程客户端主机启动,但是输出文件创建在服务器主机上。

  • 物理备份方法通常是在 MySQL 服务器主机上启动,以便将服务器关闭,虽然被复制的文件可能存储在远程位置。

某些文件系统实现支持快照,这些提供了文件系统在某个时间点的逻辑副本,不需要物理副本整个文件系统。例如,实现可能使用copy-on-write技术,使得只需复制自该快照时间后修改的文件系统部分。MySQL自身不提供文件系统快照能力,通过第三方解决方案如Veritas、LVM或ZFS可实现。

完整备份包括了某个时间点上的所有数据。增量备份则是对数据在某个时间跨度内的变化。MySQL有多种方式进行完整备份,如前面所述。增量备份通过启用服务器的二进制日志,服务器使用该日志记录数据变化来实现。

Full Versus Point-in-Time (Incremental) Recovery

完整恢复将所有数据从完整备份中恢复,恢复到备份时的状态。如果该状态不够当前,可以接着恢复自完整备份以来的一些增量备份,以将服务器更新到更新的状态。

增量恢复是对某个时间跨度内的变化恢复,这也称为点时恢复,因为它使得服务器状态更新到某个时间点。点时恢复基于二进制日志,通常在从备份文件中恢复服务器到备份时的状态,然后将二进制日志文件中的数据变化应用于重做数据修改,直到服务器达到期望的时间点。

Table 维护

数据完整性可能会受到损害,如果表格变得 corrupt。对于InnoDB表格,这不是典型的问题。为了检查MyISAM表格并在发现问题时修复它们,请参阅第9.6节,“MyISAM表格维护和崩溃恢复”

备份计划对自动化备份过程非常有价值。备份输出的压缩减少了空间需求,备份输出的加密提供了更好的安全性以防止未经授权访问备份数据。MySQL本身不提供这些功能。MySQL Enterprise Backup产品可以压缩InnoDB备份,而使用文件系统实用工具也可以实现备份输出的压缩或加密。其他第三方解决方案可能可用。