本节介绍不同类型备份的特点。
物理(原始)与逻辑备份
物理备份由存储数据库内容的目录和文件的原始副本组成。这种类型的备份适用于需要在出现问题时快速恢复的大型重要数据库。 逻辑备份保存表示为逻辑数据库结构(CREATE DATABASE, CREATE TABLE语句)和内容(INSERT语句或分隔文本文件)的信息。这种类型的备份适用于可能编辑数据值或表结构的较小数据量,或者在不同的计算机体系结构上重新创建数据。 物理备份方法具有以下特点:
- 备份由数据库目录和文件的精确副本组成。通常这是全部或部分MySQL数据目录的副本。
- 物理备份方法比逻辑更快,因为它们只涉及文件复制而无需转换。
- 输出比逻辑备份更紧凑。
- 由于备份速度和紧凑性对繁忙,重要的数据库非常重要,MySQL企业备份产品可以执行物理备份。有关MySQL企业备份产品的概述,请参见 第29.2节“MySQL企业备份概述”。
- 备份和恢复从整个数据目录级别到单个文件级别的粒度范围。这可能会也可能不会提供表级粒度,具体取决于存储引擎。例如, InnoDB表可以分别放在一个单独的文件中,或与其他InnoDB表共享文件存储 ; 每个 MyISAM表格唯一对应一组文件。
- 除数据库外,备份还可以包含任何相关文件,如日志或配置文件。
- 来自MEMORY表的数据很难以这种方式备份,因为它们的内容不存储在磁盘上。(MySQL企业备份产品具有可以MEMORY在备份过程中从表中检索数据的功能。)
- 备份只能移植到具有相同或相似硬件特性的其他机器。
- 备份可以在MySQL服务器不运行时执行。如果服务器正在运行,则需要执行适当的锁定,以便服务器在备份期间不更改数据库内容。MySQL Enterprise Backup会自动为需要它的表执行此锁定。
- 物理备份工具包括MySQL Enterprise Backup 或任何其他表的 mysqlbackup, InnoDB或表的文件系统级命令(如cp, scp,tar, rsync)MyISAM 。
- 为了恢复:
- MySQL企业备份还原InnoDB 和其他备份的表。
- ndb_restore恢复 NDB表格。
- 可以使用文件系统命令将在文件系统级复制的文件复制回原来的位置。
逻辑备份方法具有以下特征:
- 备份是通过查询MySQL服务器来获得数据库结构和内容信息。
- 备份比物理方法慢,因为服务器必须访问数据库信息并将其转换为逻辑格式。如果输出写入客户端,服务器也必须将其发送到备份程序。
- 输出大于物理备份,特别是以文本格式保存时。
- 在服务器级别(所有数据库),数据库级别(特定数据库中的所有表)或表级别都可以使用备份和还原粒度。无论存储引擎如何,情况都是如此。
- 备份不包括日志或配置文件,或其他不属于数据库的与数据库相关的文件。
- 以逻辑格式存储的备份与机器无关并且非常便携。
- 逻辑备份是在MySQL服务器运行的情况下执行的。服务器没有脱机。
- 逻辑备份工具包括mysqldump 程序和SELECT ... INTO OUTFILE语句。这些适用于任何存储引擎,甚至MEMORY。
- 要恢复逻辑备份,可以使用mysql客户端处理SQL格式的转储文件。要加载分隔文本文件,请使用 LOAD DATA INFILE语句或 mysqlimport客户端。
在线与离线备份
在MySQL服务器正在运行时,在线备份会发生,以便可以从服务器获取数据库信息。离线备份发生在服务器停止时。这种区别也可以被描述为“ 热 ”与 “ 冷 ”备份; 一个“ 温暖 ”的备份是一个在服务器保持运行,但锁定,以防止当你从外部访问数据库文件修改数据。 在线备份方法具有以下特点:
- 其他客户端的备份对其他客户端的影响较小,这些客户端可以在备份期间连接到MySQL服务器,并且可以根据他们需要执行的操作访问数据。
- 必须小心施加适当的锁定,以便不会发生损害备份完整性的数据修改。MySQL企业备份产品会自动进行这种锁定。
脱机备份方法具有以下特点:
- 客户端可能会受到不利的影响,因为服务器在备份过程中不可用。出于这个原因,这种备份通常是从复制从属服务器取得的,可以在不影响可用性的情况下使其脱机。
- 备份程序更简单,因为客户端活动不可能受到干扰。
在线和离线之间的类似区别适用于恢复操作,并且类似的特征适用。但是,联机恢复比联机备份更有可能影响客户端,因为恢复需要更强的锁定。在备份期间,客户端可能会在备份数据时读取数据。恢复修改数据并不只是读取数据,因此客户端在恢复时必须防止访问数据。
本地与远程备份
本地备份是在运行MySQL服务器的同一主机上执行的,而远程备份是从不同的主机完成的。对于某些类型的备份,即使输出在服务器上本地写入,也可以从远程主机启动备份。主办。
- mysqldump可以连接到本地或远程服务器。对于SQL输出(CREATE和 INSERT语句),可以完成本地或远程转储,并在客户端上生成输出。对于分隔文本输出(使用该 --tab选项),将在服务器主机上创建数据文件。
- SELECT ... INTO OUTFILE 可以从本地或远程客户端主机启动,但输出文件是在服务器主机上创建的。
- 物理备份方法通常在MySQL服务器主机上本地启动,以便服务器可以脱机,尽管复制文件的目标可能是远程的。
快照备份
一些文件系统实现能够实现“ 快照 ” 。它们在给定的时间点提供文件系统的逻辑副本,而不需要整个文件系统的物理副本。(例如,实现可以使用写时复制技术,以便在复制快照时间之后只修改文件系统的某些部分).MySQL本身不提供获取文件系统快照的功能。它可以通过第三方解决方案(如Veritas,LVM或ZFS)获得。
完全与增量备份
完整备份包括在特定时间点由MySQL服务器管理的所有数据。增量备份包括在给定时间跨度(从一个时间点到另一个时间点)对数据所做的更改。MySQL有不同的方式来执行完整的备份,如本节前面所述。通过启用服务器用来记录数据更改的二进制日志,可以实现增量备份。
全面与时间点(增量)恢复
完全恢复将恢复完整备份中的所有数据。这会将服务器实例恢复到进行备份时的状态。如果该状态不够充分,则完全恢复后可以恢复自完整备份以来进行的增量备份,以使服务器处于更新状态。 增量恢复是恢复在给定时间范围内所做的更改。这也称为时间点恢复,因为它使服务器的状态达到一定的时间。时间点恢复基于二进制日志,并且通常在备份文件完全恢复之后,将服务器恢复到进行备份时的状态。然后,将写入二进制日志文件的数据更改作为增量恢复应用于重做数据修改,并使服务器达到所需的时间点。
表维护
如果表损坏,数据完整性可能会受到影响。对于 InnoDB表格,这不是一个典型的问题。MyISAM 如果程序检查表格并在发现问题时进行修复,请参阅 第7.6节“MyISAM表格维护和故障恢复”。
备份调度,压缩和加密
备份计划对于自动执行备份过程非常重要。压缩备份输出可减少空间要求,并且对输出进行加密可提供更好的安全性,防止未经授权的访问备份数据。MySQL本身不提供这些功能。MySQL企业备份产品可以压缩InnoDB备份,使用文件系统实用程序可以实现备份输出的压缩或加密。其他第三方解决方案可能是可用的。
原文:www.searchdoc.cn/rdbms/mysql…
最后
- 公众号《毛毛虫的小小蜡笔》
有疑问和问题,请留言。
如果觉得文章还可以,请点赞或收藏,谢谢。