您现在的位置是:首页 >学无止境 >Mysql备份和恢复网站首页学无止境

Mysql备份和恢复

Doker 多克 2024-08-19 12:01:03
简介Mysql备份和恢复

一、备份和恢复类型

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

物理备份由存储数据库内容的目录和文件的原始副本组成。这种类型的备份适用于出现问题时需要快速恢复的大型重要数据库。
逻辑备份保存表示为逻辑数据库结构(CREATE database、CREATE TABLE语句)和内容(INSERT语句或分隔文本文件)的信息。这种类型的备份适用于较小数量的数据,您可以在其中编辑数据值或表结构,或在不同的计算机体系结构上重新创建数据。
物理备份方法具有以下特点:

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

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

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

  • 因为备份速度和紧凑性对于繁忙很重要, 重要数据库,MySQL 企业备份产品 执行物理备份。

  • 备份和恢复的粒度范围从整个数据目录的级别一直到单个文件的级别。这可能提供也可能不提供表级粒度,具体取决于存储引擎。例如,InnoDB表可以分别在一个单独的文件中,也可以与其他InnoDB表共享文件存储;每个MyISAM表唯一地对应于一组文件。
  • 除了数据库之外,备份还可以包括任何相关文件,如日志或配置文件。
  • MEMORY表中的数据很难用这种方式备份,因为它们的内容没有存储在磁盘上。(MySQL Enterprise Backup产品具有一个功能,您可以在备份过程中从MEMORY表中检索数据。)
  • 备份只能移植到具有相同或相似硬件特性的其他计算机。
  • 可以在MySQL服务器未运行时执行备份。如果服务器正在运行,则有必要执行适当的锁定,以便服务器在备份期间不会更改数据库内容。MySQL Enterprise Backup会为需要它的表自动锁定。
  • 物理备份工具包括MySQL Enterprise backup for InnoDB或任何其他表的mysqlbackup,或MyISAM表的文件系统级命令(如cp、scp、tar、rsync)。
  • 对于还原:

    • MySQL 企业备份还原InnoDB及其备份的其他表。

    • ndb_restore恢复ndb表。

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

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

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

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

    • 输出大于物理备份,尤其是在 以文本格式保存。

    • 备份和还原粒度可在服务器上使用 级别(所有数据库)、数据库级别(所有表中的表 特定数据库)或表级别。无论 的存储引擎。

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

    • 以逻辑格式存储的备份独立于计算机,并且 高度便携。

    • 逻辑备份是在 MySQL 服务器运行时执行的。 服务器未脱机。

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

    • 若要还原逻辑备份,可以将 SQL 格式的转储文件还原 使用MySql客户端处理。要加载 分隔文本文件,使用LOAD DATA 语句或mysqlimport客户端。

    2、联机备份与脱机备份

    在线备份在MySQL服务器运行时进行,因此 可以从服务器获取数据库信息。 脱机备份在服务器停止时进行。这 区别也可以描述为“热”备份与“冷”备份;“热”备份是一个 服务器保持运行但被锁定以修改数据的位置 在外部访问数据库文件时。

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

    • 备份对其他客户端的干扰较小,这可以 在备份期间连接到MySQL服务器,并且可能能够 根据他们需要的操作访问数据 执行。

    • 必须注意施加适当的锁定,以便数据 不会进行会危及备份的修改 正直。MySQL 企业备份产品就是这样做的 自动锁定。

    脱机备份方法具有以下特征:

    • 客户端可能会受到不利影响,因为服务器 备份期间不可用。因此,此类备份是 通常取自一个副本,该副本可以在没有 损害可用性。

    • 备份过程更简单,因为没有 客户端活动干扰的可能性。

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

    3、本地备份与远程备份

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

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

    4、快照备份

    某些文件系统实现允许拍摄“快照”。它们在 给定的时间点,不需要 整个文件系统。(例如,实现可以使用 写入时复制技术使文件系统仅部分 快照时间后修改需要复制。MySQL 本身 不提供拍摄文件系统快照的功能。 它可通过第三方解决方案(如 Veritas、 LVM 或 ZFS)。

    5、完整备份与增量备份

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

    6、完整恢复与时间点(增量)恢复

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

二、数据库备份方法

1、使用MySQL企业备份进行热备份

MySQL Enterprise Edition的客户可以使用MySQL Enterprise Backup产品对整个实例或选定的数据库、表或两者进行物理备份。此产品包括增量备份和压缩备份功能。备份物理数据库文件使恢复比mysqldump命令等逻辑技术快得多。InnoDB表是使用热备份机制复制的。(理想情况下,InnoDB表应该代表大部分数据。)使用热备份机制复制其他存储引擎的表。

2、使用 mysqldump 进行备份

mysqldump程序可以进行备份。它可以备份各种表格。
对于InnoDB表,可以使用mysqldump的--single transaction选项来执行不锁定表的在线备份。

3、通过复制表文件进行备份

4、进行分隔文本文件备份

5、通过启用二进制日志进行增量备份

6、使用副本进行备份

7、恢复损坏的表

三、备份和恢复策略示例

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。