1.3.1 备份中包含的文件类型

下表显示了单文件备份映像或目录备份中包含的不同类型的文件。如果是单文件备份, 可以使用或 命令将 文件解压到备份目录 结构中查看文件。extractimage-to-backup-dir

表 1.1 备份中的文件类型

文件名、模式或扩展名

与原始数据文件的关系

笔记

ibdata*

InnoDB 系统表空间,包含多个 InnoDB 表和相关索引。

由于在备份过程中原始文件可能会更改,因此该 apply-log步骤会将相同的更改应用于相应的备份文件。

*.ibd

一个 InnoDB 表空间,它可以是 (a) file-per-table 表 空间,包含单个 InnoDB 表和相关索引,或 (b) file-per-table 外部表空间,位于服务器数据目录之外,包含单个InnoDB 表和关联索引,或 (c) 通用表空间,包含一个或多个表及其索引。

由于在备份过程中原始文件可能会更改,因此应用日志步骤会将相同的更改应用于相应的备份文件。

*.ibz

来自 MySQL 数据目录的 InnoDB 数据文件的压缩形式。

生成而不是.ibd压缩备份中的文件。代表 InnoDB 系统表空间的ibdata* 文件也在压缩备份中接收此扩展名。

.ibz文件在 、apply-logcopy-back步骤 copy-back-and-apply-log 期间解压缩。

*.sdi

保存MyISAM 表的序列化字典信息 (SDI),这是表的元数据。

复制这些文件时,数据库处于只读状态。这些文件未经修改地复制。

*.MYD

MyISAM 表数据。

复制这些文件时,数据库处于只读状态。这些文件未经修改地复制。

*.MYI

MyISAM 索引数据。

复制这些文件时,数据库处于只读状态。这些文件未经修改地复制。

*.CSM

CSV 表的元数据。

这些文件未经修改地复制。mysqlbackup创建 的 backup_history和 表使用 CSV 格式,因此备份总是包含一些具有此扩展名的文件。 backup_progress

*.CSV

CSV 表的数据。

这些文件未经修改地复制。mysqlbackup创建 的 backup_history和 表使用 CSV 格式,因此备份总是包含一些具有此扩展名的文件。 backup_progress

*.MRG

MERGE 存储引擎对其他表的引用。

复制这些文件时,数据库处于只读状态。这些文件未经修改地复制。

*.ARM

ARCHIVE 存储引擎表元数据。

复制这些文件时,数据库处于只读状态。这些文件未经修改地复制。

*.ARZ

ARCHIVE 存储引擎表数据。

复制这些文件时,数据库处于只读状态。这些文件未经修改地复制。

backup-my.cnf

记录指定 MySQL 数据文件布局的配置参数。

在恢复操作中用于重现与进行备份时相同的布局。

ibbackup_ibd_files

记录.ibd增量备份时的文件名及其空间ID。

该文件是在增量备份期间创建的。在还原期间,文件中的信息用于从完整备份中删除在完整备份时间和增量备份时间之间删除的表。

ibbackup_logfile

ib_logfile*MySQL 数据目录 中文件的压缩版本 。

InnoDB 日志文件 ( ib_logfile*) 是固定大小的文件,在数据库运行期间不断更新。出于备份目的,只需要在备份过程中提交的更改。这些更改记录在 中 ,并用于在应用日志阶段 ibbackup_logfile重新创建文件。ib_logfile*

ibbackup_redo_log_only

Created 而不是 用于使用该 选项 ibbackup_logfile进行的增量备份 。--incremental-with-redo-log-only

ib_logfile*

在初始备份后的阶段 由mysqlbackup在 备份目录中创建 。apply-log

这些文件不是从原始数据目录复制的,而是在 apply-log初始备份后的阶段使用 ibbackup_logfile文件中记录的更改在备份目录中重新创建的。

带时间戳的目录,例如 2011-05-26_13-42-02

--with-timestamp选项创建。所有备份文件都放在这个子目录中。

使用该--with-timestamp选项可以轻松地将多组备份数据保存在同一个主备份目录下。

datadir目录

存储原始 MySQL 实例中的数据文件和数据库子目录的子目录。

mysqlbackup在备份目录下创建。

二进制日志文件

来自服务器的二进制日志文件,默认情况下包含在备份中(使用 --use-tts选项创建备份时除外)。它们允许拍摄服务器的快照,因此可以将服务器克隆到它的确切状态。使用完整备份作为基础,增量备份中包含的二进制日志文件可用于时间点恢复 (PITR),它将数据库恢复到上次备份后某个时间点的状态完整备份。有关详细信息,请参见第 5.3 节 “时间点恢复”

保存在datadir备份目录下。MySQL 服务器上索引文件的副本,其中列出了所有已使用的二进制日志文件,二进制日志文件的位置已正确更新以指向文件在备份中的位置,也包含在备份中datadir目录。使用该--skip-binlog 选项从备份中排除二进制日志。

默认情况下,二进制日志文件和索引文件将还原到它们在备份服务器上找到的相同位置。使用该 --log-bin 选项为二进制日志指定不同的目标位置。使用--skip-binlog 选项跳过二进制日志的恢复。

.bz当包含在压缩备份中时, 二进制日志文件被压缩并以扩展名保存 。

笔记
  • 对于 MySQL Enterprise Backup 8.0.18 和更早的版本:如果您正在备份的服务器上缺少任何二进制日志文件,您应该使用该 --skip-binlog选项来避免mysqlbackup为丢失的文件抛出错误。

  • --use-tts如果使用选项或选项 ,则不会将二进制日志文件复制到增量备份 --start-lsn 中。要包括增量备份所涵盖期间的二进制日志文件,请不要使用该 --use-tts选项,而应 --start-lsn使用该 选项,它为mysqlbackup--incremental-base 提供必要的信息确保上一次备份的二进制日志数据与本次增量备份不存在差距。

  • 没有二进制日志文件被恢复到具有部分恢复的服务器上。

中继日志文件

来自副本服务器的中继日志文件,默认情况下包含在副本服务器的备份中(使用--use-tts 选项创建备份时除外)。它们的包含节省了在恢复副本时从源获取中继日志所需的时间和资源。

保存在datadir备份目录下的目录下。副本服务器上的索引文件副本列出了所有已使用的中继日志文件,中继日志文件的位置已正确更新以指向文件在备份目录中的位置,也包含在备份中,在下面datadir 目录。使用该 --skip-relaylog选项从备份中排除中继日志。

默认情况下,中继日志文件和索引文件将恢复到它们在备份副本服务器上找到的相同位置。使用该 --relay-log选项为中继日志指定不同的目标位置。使用--skip-relaylog 选项跳过中继日志的恢复。

没有中继日志文件被恢复到具有 部分恢复的服务器上。

.bz当包含在压缩备份中时, 中继日志文件被压缩并以扩展名保存 。

*.bz

压缩的二进制日志或中继日志文件。

.bz当包含在压缩备份中时, 二进制日志和中继日志文件被压缩并以扩展名保存。它们在恢复过程中被解压缩。

撤消日志文件

从服务器撤消日志文件。有关详细信息,请参阅 撤消表空间

对于 8.0.16 及更高版本: 活动和非活动撤消表空间都包含在备份中。此外,当该 --incremental-with-redo-log-only 选项用于创建增量备份时, mysqlbackup 从重做日志中为增量备份所涵盖的时间段创建一个撤消日志,并将其包含在备份中。

默认保存 datadir在备份里面的目录下。使用该 --backup_innodb_undo_directory 选项为备份中的撤消日志指定另一个位置。

对于 8.0.15 版及更早版本: 撤消表空间恢复到选项指向的位置 --innodb_undo_directory

对于 8.0.16 版及更高版本: 在还原期间,默认撤消表空间以及驻留在备份服务器数据目录中的任何非默认撤消表空间都将还原到 mysqlbackup选项 --innodb_undo_directory。非默认的外部撤消表空间被恢复到它们在备份服务器上找到的位置;通过编辑tablespace_tracker文件 更改其还原位置

使用部分还原 ,不会将撤消日志文件还原到服务器上 。

*.uz

压缩的撤消日志文件。

.uz当包含在压缩备份中时, 撤消日志文件会被压缩并以扩展名保存 。它们在恢复过程中被解压缩。

加密密钥环数据文件

对于使用该 keyring_encrypted_file插件的服务器,服务器上的选项指定的文件将 以其文件夹 keyring_encrypted_file_data 下的原始名称复制到备份中 。meta

对于使用非 keyring 插件的服务器 keyring_encrypted_file,文件名为keyring_kef,保存在meta文件夹下。

包含用于 InnoDB 表加密的主密钥的加密文件。有关详细信息,请参阅第 6 章,使用加密的 InnoDB 表空间

副本状态日志文件

通常命名为master.inforelay-log.info,它们默认包含在复制设置中的副本数据库备份中。有关详细信息,请参阅 复制元数据存储库

保存在datadir备份目录下的目录下。

使用该 --skip-relay-log选项时,在备份或恢复期间将跳过这些文件的复制。

备份图像文件

选项生成的单文件备份 backup-to-image,名称由 --backup-image选项指定。

您可以在不丢失或损坏其中内容的情况下移动图像文件,然后 使用 命令使用mysqlbackupextract解压缩它并使用选项指定相同的图像名称 --backup-image。虽然备份目录中存在一些额外的文件,例如backup-my.cnfmeta子目录,但这些文件也包含在映像文件中,不需要随映像文件一起移动。

datadir目录下(即 下 ) 子目录中的任何其他文件 backup-dir/datadir/subdir

从 MySQL 数据目录下的数据库子目录复制。

默认情况下,MySQL 数据目录下子目录中的任何无法识别的文件都将复制到备份中。要省略此类文件,请指定该 --only-known-file-types 选项。

笔记

一些限制适用于此行为。请参阅附录 B中 的讨论 MySQL Enterprise Backup 的局限性

meta目录

一个子目录,用于存储包含有关备份的元数据的文件。

mysqlbackup在备份目录下创建。下面列出的所有文件都在meta子目录中。

backup_variables.txt

保存有关备份的重要信息。仅供mysqlbackup使用。

mysqlbackup在初始备份后的操作期间查询并可能更新此文件,例如应用日志阶段或恢复阶段。

image_files.xml

backup-to-image包含由或 backup-dir-to-image 选项 生成的单文件备份中存在的所有文件(自身除外)的列表。有关此文件的详细信息,请参阅 第 17.4 节,“使用 MySQL 企业备份清单”

此文件一旦生成,在任何阶段都不会被修改。

backup_create.xml

列出创建备份的命令行参数和环境。有关此文件的详细信息,请参阅第 17.4 节,“使用 MySQL 企业备份清单”

该文件一旦创建就不会被修改。--disable-manifest 您可以通过指定选项 来防止生成此文件。

backup_content.xml

备份数据的文件和数据库定义的基本元数据。它还包含备份服务器上定义的所有插件的详细信息,用户应通过这些详细信息确保在目标服务器上以相同的方式定义相同的插件以进行恢复。有关此文件的详细信息,请参阅第 17.4 节,“使用 MySQL 企业备份清单”

该文件一旦创建就不会被修改。--disable-manifest 您可以通过指定选项 来防止生成此文件。

comments.txt

--comments or--comments-file选项产生。

注释由您指定以记录此备份作业的目的或特殊注意事项。

backup_gtid_executed.sql

表示备份来自启用了 GTID 的服务器。

GTID 是 MySQL 5.6 及更高版本中的复制功能。有关详细信息,请参阅使用全局事务标识符进行复制。当您使用mysqlbackup备份启用了 GTID 的服务器时,将在备份目录下的文件夹backup_gtid_executed.sql中创建名为 的文件。meta在副本服务器上恢复备份数据后编辑并执行该文件;有关详细信息,请参阅 第 8.1 节,“设置新副本”

笔记

对于副本服务器的 TTS备份,使用已 生成 的--slave-info选项。backup_gtid_executed.sql

server-my.cnf

包含设置为非默认值的备份服务器全局变量的值。使用此文件或server-all.cnf启动目标服务器进行恢复。

copy-backor copy-back-and-apply-log 操作期间, 如果命令通过命令选项对文件中的服务器存储库选项值(例如, --datadir、 等)进行更改,则会对其进行修改。--innodb_data_home_dir但是,在 apply-incremental-backup 操作期间,已保存在文件中的值优先,并且它们不会被通过命令提供的选项值修改。

警告

使用该文件重新启动目标服务器时,更改 、 等参数--tmpdir--general-log以及任何使用绝对文件路径的全局变量,以避免目标服务器意外使用错误的文件位置。

server-all.cnf

包含备份服务器的所有全局变量的值。使用此文件或 server-my.cnf启动目标服务器进行恢复。

copy-backor copy-back-and-apply-log 操作期间, 如果命令通过命令选项对文件中的服务器存储库选项值(例如, --datadir、 等)进行更改,则会对其进行修改。--innodb_data_home_dir但是,在 apply-incremental-backup 操作期间,已保存在文件中的值优先,并且它们不会被通过命令提供的选项值修改。

警告

使用该文件重新启动目标服务器时,更改 、 等参数--tmpdir--general-log以及任何使用绝对文件路径的全局变量,以避免目标服务器意外使用错误的文件位置。

backup-auto.cnf

auto.cnf来自备份服务器 的文件副本。

该文件将还原到已还原服务器的数据目录中。要将存储在内部的 UUID 用于恢复的服务器,请 auto.cnf在启动服务器之前将文件重命名为。

backup-mysqld-auto.cnf

mysqld-.cnf来自备份服务器 的文件副本。

该文件将还原到已还原服务器的数据目录中。要为恢复的服务器使用存储在内部的持久系统变量,请mysqld-auto.cnf 在启动服务器之前将文件重命名为。

ib_buffer_pool

服务器上生成的文件 innodb_buffer_pool_dump_at_shutdown (在 MySQL 5.7.7 及更高版本上默认启用)或 innodb_buffer_pool_dump_now 启用。它包含服务器缓冲池的表空间 ID 和页面 ID 的列表 。

实际的文件名可能不同,因为它可以由服务器的系统变量配置 innodb_buffer_pool_filename

使用 MySQL 服务器 5.7.7 及之后的默认设置 ( innodb_buffer_pool_load_at_startup=ON),目标服务器在启动期间将使用此文件恢复备份服务器的缓冲池状态。有关详细信息,请参阅 保存和恢复缓冲池状态

tablespace_tracker

该文件跟踪外部表空间,记录它们在备份服务器上的文件路径及其表空间 ID。

如果备份服务器上存在任何外部表空间,则将 datadir在备份内的文件夹中找到跟踪器文件。server_file_path如果要更改该表空间的还原位置(必须使用绝对路径),请更改任何表空间的文件。要访问单个文件备份中的跟踪器文件,请使用 extract命令。

警告
  • 如果跟踪器文件从备份中删除,则备份的恢复可能会无提示地失败,从而导致恢复的数据损坏。

  • 对于 8.0.16 版及更高版本:您无法通过编辑 server_file_path条目来更改数据库默认撤消表空间的还原位置。它们的恢复位置由mysqlbackup 选项 --innodb_undo_directory

恢复完成后,如果恢复的服务器包含任何外部表空间,将在恢复的服务器的数据目录中找到一个跟踪器文件。