物理备份由存储数据库内容的目录和文件的原始副本组成。这种类型的备份适用于需要在出现问题时快速恢复的大型、重要的数据库。
逻辑备份保存以逻辑数据库结构(CREATE DATABASE
、 CREATE TABLE
语句)和内容(INSERT
语句或分隔文本文件)表示的信息。这种类型的备份适用于较小的数据量,您可以在其中编辑数据值或表结构,或者在不同的机器架构上重新创建数据。
物理备份方法具有以下特点:
-
备份由数据库目录和文件的精确副本组成。通常,这是全部或部分 MySQL 数据目录的副本。
-
物理备份方法比逻辑备份更快,因为它们只涉及文件复制而无需转换。
-
输出比逻辑备份更紧凑。
-
由于备份速度和紧凑性对于繁忙的重要数据库很重要,因此 MySQL Enterprise Backup 产品执行物理备份。
-
备份和恢复粒度范围从整个数据目录级别到单个文件级别。这可能会或可能不会提供表级粒度,具体取决于存储引擎。例如,
InnoDB
表可以每个都在一个单独的文件中,或者与其他InnoDB
表共享文件存储 ;每个MyISAM
表唯一对应于一组文件。 -
除了数据库之外,备份还可以包括任何相关文件,例如日志或配置文件。
-
MEMORY
表中的 数据很难以这种方式备份,因为它们的内容没有存储在磁盘上。(MySQL Enterprise Backup 产品有一项功能,您可以MEMORY
在备份期间从表中检索数据。) -
备份仅可移植到具有相同或相似硬件特征的其他机器上。
-
可以在 MySQL 服务器未运行时执行备份。如果服务器正在运行,则需要执行适当的锁定,以便服务器在备份期间不会更改数据库内容。MySQL Enterprise Backup 会自动为需要锁定的表执行此锁定。
-
物理备份工具包括MySQL Enterprise Backup或任何其他表的 mysqlbackup,
InnoDB
或表的文件系统级命令(例如cp、 scp、tar、 rsync)MyISAM
。 -
对于恢复:
-
MySQL Enterprise Backup 还原
InnoDB
它备份的其他表。 -
ndb_restore恢复
NDB
表。 -
在文件系统级别复制的文件可以使用文件系统命令复制回其原始位置。
逻辑备份方法具有以下特点:
-
备份是通过查询 MySQL 服务器获取数据库结构和内容信息来完成的。
-
备份比物理方法慢,因为服务器必须访问数据库信息并将其转换为逻辑格式。如果输出写在客户端,服务器也必须将它发送给备份程序。
-
输出大于物理备份,尤其是在以文本格式保存时。
-
备份和恢复粒度在服务器级别(所有数据库)、数据库级别(特定数据库中的所有表)或表级别可用。无论存储引擎如何,这都是正确的。
-
备份不包括日志或配置文件,或不属于数据库的其他与数据库相关的文件。
-
以逻辑格式存储的备份独立于机器且具有高度可移植性。
-
逻辑备份是在 MySQL 服务器运行的情况下执行的。服务器不会脱机。
-
逻辑备份工具包括mysqldump 程序和
SELECT ... INTO OUTFILE
语句。这些适用于任何存储引擎,甚至MEMORY
. -
要恢复逻辑备份,可以使用mysql客户端处理 SQL 格式的转储文件。要加载分隔文本文件,请使用
LOAD DATA
语句或mysqlimport 客户端。
二进制备份不一定比 sql 备份小例如表空间原来有很大的数据,删除只剩一条后,原表空间不释放,会留有很多空页,这种情况下直接物理备份就会比 sql 逻辑备份大很多 -