DBA 和开发工作通常涉及逻辑结构,例如表、行、列、数据字典等。对于备份,您必须了解文件如何表示这些结构的物理细节。
表 1.1 MySQL 企业备份输出目录中的文件
文件名、模式或扩展名 | 与原始数据文件的关系 | 笔记 |
---|---|---|
| InnoDB 系统表空间,包含多个 InnoDB 表和相关索引。 |
由于在备份过程中原始文件可能会更改,因此该
|
| InnoDB file-per-table 表空间,每个表空间包含一个 InnoDB 表和关联的索引。 |
用于使用该
|
| 来自 MySQL 数据目录的 InnoDB 数据文件的压缩形式。 |
生成而不是
|
| 保存所有 MySQL 表的元数据。 | 复制这些文件时,数据库处于只读状态。复制这些文件而不做任何更改。 |
| MyISAM 表数据。 | 复制这些文件时,数据库处于只读状态。复制这些文件而不做任何更改。 |
| MyISAM 索引数据。 | 复制这些文件时,数据库处于只读状态。复制这些文件而不做任何更改。 |
| CSV 表的元数据。 |
复制这些文件而不做任何更改。mysqlbackup创建
的
|
| CSV 表的数据。 |
复制这些文件而不做任何更改。mysqlbackup创建
的
|
| MERGE 存储引擎对其他表的引用。 | 复制这些文件时,数据库处于只读状态。复制这些文件而不做任何更改。 |
| 触发器参数。 | 复制这些文件时,数据库处于只读状态。复制这些文件而不做任何更改。 |
| 触发名称空间信息。 | 复制这些文件时,数据库处于只读状态。复制这些文件而不做任何更改。 |
| 数据库配置信息。 | 复制这些文件时,数据库处于只读状态。复制这些文件而不做任何更改。 |
| 分区表的定义。 | 复制这些文件时,数据库处于只读状态。复制这些文件而不做任何更改。 |
| ARCHIVE 存储引擎表元数据。 | 复制这些文件时,数据库处于只读状态。复制这些文件而不做任何更改。 |
| ARCHIVE 存储引擎表数据。 | 复制这些文件时,数据库处于只读状态。复制这些文件而不做任何更改。 |
| 记录指定布局的配置参数和有关 MySQL 数据文件的其他重要信息。 |
该文件是在备份期间创建的,它包含描述备份数据的关键参数,如
|
|
记录 | 该文件是在增量备份期间创建的。在还原期间,文件中的信息用于从完整备份中删除在完整备份时间和增量备份时间之间删除的表。 |
|
|
InnoDB 日志文件 ( |
|
Created 而不是
用于使用该
选项
| |
| 在初始备份后的阶段
由mysqlbackup在
备份目录中创建
。 |
这些文件不是从原始数据目录复制的,而是在 |
| 来自备份服务器 的每个 .isl 文件的重命名版本。 |
当您使用语法
如果文件指向的目标服务器上的目录
|
带时间戳的目录,例如
|
由
|
使用该 |
| 存储原始 MySQL 实例中的数据文件和数据库子目录的子目录。 | 由 mysqlbackup在备份目录下创建。 |
来自服务器的二进制日志文件,默认情况下包含在备份中(使用
--use-tts 选项创建备份时除外)。它们允许拍摄服务器的快照,因此可以将服务器克隆到它的确切状态。使用完整备份作为基础,增量备份中包含的二进制日志文件可用于时间点恢复 (PITR),它将数据库恢复到上次备份后某个时间点的状态完整备份。有关详细信息,请参见
第 5.3 节 “时间点恢复”。 |
保存在
二进制日志文件和索引文件(如果包含在备份中)在还原操作期间始终被复制到还原服务器的数据目录中。使用
笔记
| |
中继日志文件 | 来自副本服务器的中继日志文件,默认情况下包含在副本服务器的备份中(使用--use-tts
选项创建备份时除外)。它们的包含节省了在恢复副本时从源获取中继日志所需的时间和资源。 |
保存在
中继日志文件和索引文件(如果包含在备份中)在还原操作期间始终被复制到还原服务器的数据目录中。使用
|
*.bz | 压缩的二进制日志或中继日志文件。 |
|
复制元数据存储库文件 | 通常命名为master.info 和
relay-log.info ,它们默认包含在复制设置中的副本数据库备份中。有关详细信息,请参阅复制元数据存储库。 |
保存在
使用该 |
备份图像文件 |
命令生成的单文件备份
|
如果您的备份数据目录仅包含零字节文件,并且在顶级目录中有一个巨大的数据文件,那么您有一个单文件备份。您可以在不丢失或损坏其中内容的情况下移动图像文件,然后使用
mysqlbackup选项解压缩它并使用该
|
| 从 MySQL 数据目录下的数据库子目录复制。 |
默认情况下,MySQL 数据目录下子目录中的任何无法识别的文件都将复制到备份中。要省略此类文件,请指定该
笔记
一些限制适用于此行为。请参阅附录 B中 的讨论 ,MySQL Enterprise Backup 的局限性。 |
| 一个子目录,用于存储包含有关备份的元数据的文件。 |
由
mysqlbackup在备份目录下创建。下面列出的所有文件都在 |
| 保存有关备份的重要信息。仅供 mysqlbackup使用。 | mysqlbackup在初始备份后的操作期间查询并可能更新此文件,例如应用日志阶段或恢复阶段。 |
|
| 此文件一旦生成,在任何阶段都不会被修改。 |
| 列出创建备份的命令行参数和环境。有关此文件的详细信息,请参阅第 11.4 节,“使用 MySQL 企业备份清单”。 |
该文件一旦创建就不会被修改。 |
| 备份数据的文件和数据库定义的基本元数据。它还包含备份服务器上定义的所有插件的详细信息,用户应通过这些详细信息确保在目标服务器上以相同的方式定义相同的插件以进行恢复。有关此文件的详细信息,请参阅 第 11.4 节,“使用 MySQL 企业备份清单”。 |
该文件一旦创建就不会被修改。 |
|
由 | 注释由您指定以记录此备份作业的目的或特殊注意事项。 |
| 表示备份来自启用了 GTID 的服务器。 |
GTID 是 MySQL 5.6 及更高版本中的复制功能。有关详细信息,请参阅使用全局事务标识符进行复制。当您使用
mysqlbackup备份启用了 GTID 的服务器时,将在备份目录下的文件夹 |
server-my.cnf |
包含设置为非默认值的备份服务器全局变量的值。使用此文件或 |
在
警告
使用该文件重新启动目标服务器时,更改 、 等参数 |
server-all.cnf |
包含备份服务器的所有全局变量的值。使用此文件或
|
在
警告
使用该文件重新启动目标服务器时,更改 、 等参数 |
InnoDB 数据
InnoDB 存储引擎管理的数据总是被备份的。备份的与 InnoDB 相关的主要数据文件包括 ibdata* 文件(代表系统表空间,可能代表一些用户表的数据),任何 .ibd 文件(包含来自使用 file-per-创建的用户表的数据)表设置启用),以及从 ib_logfile* 文件中提取的数据(表示备份运行时发生的更改的 重做日志信息),这些数据存储在一个新的备份文件 ibbackup_logfile中。
如果您使用压缩备份功能,
.ibd
文件将以压缩形式重命名为.ibz 文件。
最初复制的文件形成
原始备份,需要进一步处理才能恢复。然后运行应用步骤,根据文件中记录的更改更新备份文件
ibbackup_logfile
,生成
准备好的备份。此时,备份数据对应于单个时间点。这些文件现在已准备好恢复到它们的原始位置,或用于某些其他用途,例如测试、报告或部署为副本。
要将 InnoDB 表恢复到其原始状态,您还必须具有相应的.frm 文件以及备份数据。
否则,如果自备份以来有人运行
ALTER TABLE
或语句,表定义可能会丢失或过时。DROP TABLE
默认情况下,
mysqlbackup在备份操作期间自动复制
.frm
文件并在恢复操作期间恢复文件。
来自 MyISAM 和其他存储引擎的数据
mysqlbackup还备份 与 MyISAM 表关联的.MYD 文件、 .MYI 文件和 .frm文件。备份的具有其他扩展名的文件显示在此列表中。
虽然 MySQL Enterprise Backup 可以备份非 InnoDB 数据(如 MYISAM 表),但要备份的 MySQL 服务器必须支持 InnoDB(即,如果服务器使用
--innodb=OFF
或
--skip-innodb
选项启动,备份过程将失败),并且服务器必须包含至少一个 InnoDB 表。
MyISAM 表和这些其他类型的文件不能以与 InnoDB 表相同的非阻塞方式备份。它们使用热备份 技术进行备份:在备份这些表时会阻止更改这些表,这可能会使数据库暂时无响应,但在备份期间不需要关闭。
为避免繁忙数据库备份期间出现并发问题,您可以使用--only-innodb
或
--only-innodb-with-frm
选项仅备份 InnoDB 表和相关数据。
生成的文件包含在备份中
备份数据包括一些在备份过程中产生的新文件。这些文件用于控制以后的任务,例如验证和恢复备份数据。备份过程中生成的文件包括:
meta/backup_create.xml
:列出创建备份的命令行参数和环境。meta/backup_content.xml
:备份数据的文件和数据库定义的基本元数据。backup-my.cnf
:记录应用于备份的关键配置参数。这些配置参数由 mysqlbackup在apply-log
确定备份数据的结构等操作期间读取。在还原操作期间还会检查这些参数是否与目标服务器的配置兼容。server-my.cnf
:包含设置为非默认值的备份服务器全局变量的值。server-all.cnf
:包含备份服务器的所有全局变量的值。
有关备份目录中所有文件的详细信息,请参阅 表 1.1 “MySQL 企业备份输出目录中的文件”。
单文件备份
根据您的工作流程,您可能希望执行单个文件备份而不是目录备份,目录备份会为原始服务器实例上的每个文件生成一个单独的文件。单个文件备份更容易传输到不同的系统、压缩和解压缩;它还有助于防止错误删除构成备份一部分的单个文件的情况。完全还原与多文件备份一样快;恢复单个文件可能比在多文件备份中慢。有关说明,请参阅 第 4.3.5 节 “制作单个文件备份”。