ITPub博客

首页 > 数据库 > > 7.1 备份和恢复的类型

7.1 备份和恢复的类型

作者:飘絮絮絮丶 时间:2020-05-14 11:57:03 0 删除 编辑

参考官方文档:

dev.mysql.com/doc/refma



MySQL提供了多种备份策略,您可以从中选择最适合您安装要求的方法。 本章讨论您应该熟悉的几个备份和恢复主题:


  • 备份类型:逻辑与物理,完整与增量等。
  • 创建备份的方法。
  • 恢复方法,包括时间点的恢复
  • 备份调度,压缩和加密
  • 表维护,能够恢复损坏的表




本节介绍不同类型备份的特点。



物理(RAW)与逻辑备份


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


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



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


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




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


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





在线与离线备份(冷备份和热备)



MySQL服务器正在运行时进行在线备份,以便可以从服务器获取数据库信息。 离线备份发生在服务器停止时。 这种区别也可以被描述为“hot”与“cold”备份; “warm”的备份是服务器保持运行的状态,但在外部访问数据库文件时锁定而无法修改数据(只读)。



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


  • 备份对其他客户端的影响较小,这些客户端可以在备份期间连接到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备份,压缩或加密备份输出可以使用文件系统实用程序来实现。 其他第三方解决方案可能可以使用。


--mysql 在这一块比oracle 差太多,毕竟 oracle 有很专业的RMAN 备份恢复工具。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946831/viewspace-3132582/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-09-09

  • 博文量
    2646
  • 访问量
    42185