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