MySQL 备份概述

Posted liuhedong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 备份概述相关的知识,希望对你有一定的参考价值。

物理与逻辑备份

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

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

 

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

  • 备份包含数据库目录和文件的精确副本,通常,这是mysql数据库目录的全部或部分副本

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

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

  • 由于备份速度和紧凑性对繁忙,重要的数据库很重要,因此 MySQL Enterprise Backup 产品可执行物理备份,

  • 备份和还原粒度范围从整个数据目录的级别到单个文件级别,根据存储引擎的不同,这可能提供表级粒度,也可能不提供表级粒度,例如吗,InnoDB表可以分别位于单独的文件中,或者与其他InnoDB表共享文件存储,每个MylSAM 表唯一地对应于一组文件

  • 除数据库外,备份还可以包括任何相关文件,如日志或配置文件

  • 来自 Memory 表的数据很难以这种方式备份,因为它们的内容不存储在磁盘上。(MySQL Enterprise Backup产品具有可在备份期间从Memory表中检索数据的功能)

  • 备份仅可一直到具有相同或类似硬件特征的其他计算机

  • 可以在MySQL服务器未运行时执行备份,如果服务器正在运行,则必须执行适当的锁定,以便服务器在备份期间补货更改数据库内容,MySQL Enterprise Backup 会自动为需要它的表执行此锁定。

  • 物理备份工具包括用于InnoDB或任何其他表的 MySQL Enterprise Backup 的 mysqlbackup,或用于 MylSAM表的文件系统级命令(如cp、scp、tar、rsync)

  • 恢复:

    • MySQL Enterprise Backup还原InnoDB以及它备份的其他表。

    • ndb_restore 恢复NDB表

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

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

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

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

  • 输出大于物理备份,特别是以文本格式保存时

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

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

  • 以逻辑格式存储的备份与机器无关且具有高度可移植性

  • 在运行MySQL服务器的情况下执行逻辑备份,服务器未脱机

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

  • 要恢复逻辑备份,可以使用 mysql 客户端处理SQL格式转储文件,要加载分隔文本文件,请使用 LOAD DATA INFILE 语句或 mysqlimport 客户端。

 

 

在线与离线备份

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

 

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

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

  • 必须小心施加适当的锁定,以便不会发生会损害备份完整性的数据修改,MySQL Enterprise Backup 产品会自动执行此类锁定

 

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

  • 客户端会受到不利影响,因为备份期间服务器不可用,因此,此类备份通常来自复制从属服务器,可以脱机而不会损害可用性。

  • 备份过程更简单,因为不会受到客户端活动的干扰。

 

 

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

 

 

 

 

本地与远程备份

 

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

  • mysqldump可以连接到本地或远程服务器,对于SQL输出(CREATE 和 INSERT 语句),可以完成本地或远程转储并在客户端上生成输出,对于分隔文本输出(使用--tab选项),将在服务器主机上创建数据文件

  • SELECT ... INTO OUTFILE 可以从本地或远程客户端主机启动,但输出文件是在服务器主机上创建的

  • 物理备份方法通常在MySQL服务器主机上本地启动,以便服务器可以脱机,尽管复制文件的目标可能是远程的

 

 

 

快照备份

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

 

 

完全与增量备份

 

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

 

 

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

完全恢复可从完整备份恢复所有数据,这会将服务器实例还原到备份时的状态,如果该状态不够充分,则可以再完全恢复之后恢复自完全备份以来所做的增量备份,以使服务器处于更新状态。

增量恢复是恢复在给定时间跨度内所做的更改,这也成为时间点恢复,因为它使服务器的状态达到给定时间,时间点恢复基于二进制日志,通常在备份文件完全恢复之后,将备份文件还原到备份时的状态,然后二进制日志文件中写入的数据更改将作为增量恢复应用于重做数据修改,并使服务器达到所需的时间点。

 

 

 

表维护

如果表损坏,数据完整性可能户受到影响,对InnoDB表格,这不是典型问题,对于检查MyISAM表并在发现问题时进行修复的程序,请参见“MyISAM表维护和崩溃恢复”

 

 

 

备份调度,压缩和加密

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

 

以上是关于MySQL 备份概述的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 备份概述

MySQL数据库备份和恢复

MySQL日志管理及备份与恢复

Mysql的主主备份与主从备份--同步

MySQL数据库之——日志和数据库内容的备份与恢复(妈妈再也不用担心数据丢失了)

MySQL 备份恢复