MySQL备份和恢复类型

备份和恢复类型

物理(原始)与逻辑备份

物理备份由存储数据库内容的目录和文件的原始副本组成。这种类型的备份适用于出现问题时需要快速恢复的大型重要数据库。
逻辑备份将信息保存为逻辑数据库结构(CREATE DATABASE, CREATE TABLE语句)和内容(INSERT语句或分隔文本文件)。这种类型的备份适用于少量数据,您可以在其中编辑数据值或表结构,或在不同的机器架构上重新创建数据。

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

  • 备份由数据库目录和文件的精确副本组成。通常这是 MySQL 数据目录的全部或部分的副本。
  • 物理备份方法比逻辑备份方法更快,因为它们只涉及文件复制而不进行转换。
  • 输出比逻辑备份更紧凑。因为备份速度和紧凑性对于繁忙的重要数据库很重要,所以 MySQL Enterprise Backup 产品执行物理备份。
  • 备份和恢复粒度范围从整个数据目录级别到单个文件级别。这可能会或可能不会提供表级粒度,具体取决于存储引擎。例如, InnoDB每个表可以在一个单独的文件中,或者与其他 InnoDB表共享文件存储;每个 MyISAM表唯一地对应于一组文件。
  • 除了数据库之外,备份还可以包括任何相关文件,例如日志或配置文件。
  • MEMORY以这种方式备份表中的 数据很棘手,因为它们的内容不存储在磁盘上。(MySQL Enterprise Backup 产品具有一项功能,您可以MEMORY在备份期间从表中检索数据。)
  • 备份只能移植到具有相同或相似硬件特征的其他机器上。
  • 可以在 MySQL 服务器未运行时执行备份。如果服务器正在运行,则需要执行适当的锁定,以使服务器在备份期间不会更改数据库内容。MySQL Enterprise Backup 自动为需要它的表执行此锁定。
  • 物理备份工具包括 MySQL Enterprise Backup for 或任何其他表的mysqlbackupInnoDB ,或表的文件系统级命令(例如cp、 scp、tar、 rsync)MyISAM 。
  • 对于还原:
    • MySQL Enterprise Backup 恢复InnoDB 它备份的其他表。
    • ndb_restore恢复 NDB表。
    • 在文件系统级别复制的文件可以使用文件系统命令复制回其原始位置。

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

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

在线与离线备份

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

在线备份方式具有以下特点:

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

离线备份方式具有以下特点:

  • 由于服务器在备份期间不可用,客户端可能会受到不利影响。因此,此类备份通常取自副本服务器,可以在不损害可用性的情况下脱机。备份过程更简单,因为不会受到客户端活动的干扰。

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

本地与远程备份

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

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

快照备份

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

完整备份与增量备份

完整备份包括 MySQL 服务器在给定时间点管理的所有数据。增量备份包括在给定时间跨度内(从一个时间点到另一个时间点)对数据所做的更改。MySQL 有不同的方法来执行完整备份,例如本节前面描述的那些。通过启用服务器的二进制日志来实现增量备份,服务器使用它来记录数据更改。

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

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

表维护

如果表损坏,数据完整性可能会受到影响。对于 InnoDB表,这不是一个典型的问题。有关检查MyISAM 表并在发现问题时修复它们的程序,请参阅 第 7.6 节,“MyISAM 表维护和崩溃恢复”。

备份计划、压缩和加密

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

欢迎关注gzh HEYDATA,一起交流更多。

你可能感兴趣的:(MySQL备份和恢复类型)