Skip to main content

1.备份和恢复类型

涉及到的概念

  • 物理备份与逻辑备份
  • 在线备份与离线备份
  • 本地备份与远程备份
  • 完整备份与增量备份
  • 完全恢复与时间点(增量)恢复
  • 备份计划、压缩和加密

物理(原始)备份与逻辑备份

物理备份

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

逻辑备份

保存以逻辑数据库结构(语句)和内容(语句或分隔文本文件)表示CREATE DATABASE的 CREATE TABLE信息INSERT。这种类型的备份适用于较小量的数据,可以在其中编辑数据值或表结构,或者在不同的计算机体系结构上重新创建数据。

两种备份方法特点

物理备份方法

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

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

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

  • 由于备份速度和紧凑性对于繁忙的重要数据库非常重要。

  • 备份和恢复粒度范围从整个数据目录级别到单个文件级别。这可能会也可能不会提供表级粒度,具体取决于存储引擎。

    • 例如, InnoDB每个表可以位于单独的文件中,或者与其他 InnoDB表共享文件存储;每个 MyISAM表唯一对应于一组文件。
  • 除了数据库之外,备份还可以包括任何相关文件,例如日志或配置文件。

  • MEMORY以这种方式备份表中的数据很困难,因为它们的内容不存储在磁盘上。

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

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

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

逻辑备份方法

  • 备份是通过查询MySQL服务器获取数据库结构和内容信息来完成的。
  • 备份比物理方法慢,因为服务器必须访问数据库信息并将其转换为逻辑格式。如果输出写在客户端,服务器也必须将其发送到备份程序。
  • 输出比物理备份大,特别是以文本格式保存时。
  • 备份和恢复粒度可在服务器级别(所有数据库)、数据库级别(特定数据库中的所有表)或表级别使用。无论存储引擎如何,都是如此。
  • 备份不包括日志或配置文件,或不属于数据库的其他与数据库相关的文件。
  • 以逻辑格式存储的备份是独立于机器的并且高度可移植。
  • 逻辑备份是在 MySQL 服务器运行时执行的。服务器不会离线。
  • 逻辑备份工具包括 mysqldump 程序和 SELECT ... INTO OUTFILE 语句。这些适用于任何存储引擎,甚至 MEMORY
  • 要恢复逻辑备份,可以使用mysql客户端 处理 SQL 格式的转储文件。要加载分隔文本文件,请使用该LOAD DATA语句或 mysqlimport 客户端。

在线备份与离线备份

  • 在线备份是在MySQL服务器运行时进行的,以便可以从服务器获取数据库信息。
  • 离线备份在服务器停止时进行。

这种区别也可以描述为“热”备份与 “冷”备份;“热”备份是指当您从外部访问数据库文件时,服务器保持运行但锁定以防止修改数据的备份。

两种备份方法特点

在线备份方法

  • 备份对其他客户端的干扰较小,其他客户端可以在备份期间连接到 MySQL 服务器,并且可能能够根据需要执行的操作来访问数据。
  • 必须注意施加适当的锁定,以免发生会损害备份完整性的数据修改。

离线备份方法

  • 由于服务器在备份期间不可用,客户端可能会受到不利影响。因此,此类备份通常是从可以离线使用而不会损害可用性的副本中获取的。
  • 备份过程更简单,因为不可能受到客户端活动的干扰。

在备份期间,客户端可能能够在备份期间读取数据。恢复会修改数据而不仅仅是读取数据,因此必须防止客户端在恢复数据时访问数据。

本地备份与远程备份

  • 本地备份本地备份是在MySQL服务器运行的同一主机上执行的。
  • 远程备份远程备份是在不同的主机上执行的。

两种备份方法特点

  • mysqldump可以连接到本地或远程服务器。对于 SQL 输出(CREATE和 INSERT语句),可以完成本地或远程转储并在客户端上生成输出。对于分隔文本输出(使用选项 --tab),数据文件在服务器主机上创建。
  • SELECT ... INTO OUTFILE可以从本地或远程客户端主机启动,但输出文件是在服务器主机上创建的。
  • 物理备份方法通常在 MySQL 服务器主机本地启动,以便服务器可以脱机。

完整备份与增量备份

  • 完整备份包括 MySQL 服务器在给定时间点管理的所有数据。
  • 增量备份由给定时间跨度(从一个时间点到另一个时间点)内对数据所做的更改组成。

MySQL 有不同的方法来执行完整备份,例如本节前面描述的方法。通过启用服务器的二进制日志可以实现增量备份,服务器使用二进制日志来记录数据更改。

完全恢复与时间点(增量)恢复

  • 完整恢复从完整备份中恢复所有数据。这会将服务器实例恢复到进行备份时的状态。如果该状态不够最新,则可以在完整恢复之后恢复自完整备份以来所做的增量备份,以使服务器达到更新的状态。
  • 增量恢复是恢复给定时间范围内所做的更改。这也称为时间点恢复,因为它使服务器的状态达到给定时间。时间点恢复基于二进制日志,通常在从备份文件进行完全恢复之后,将服务器恢复到备份时的状态。然后,写入二进制日志文件中的数据更改将作为增量恢复应用到重做数据修改并使服务器达到所需的时间点。

备份计划、压缩和加密

  • 备份计划对于自动化备份过程很有价值。
  • 备份输出的压缩可减少空间需求。
  • 输出的加密可提供更好的安全性,防止对备份数据进行未经授权的访问。