立即与支持人员聊天
与支持团队交流

NetVault Plug-in for MySQL 12.2 - 用户指南

NetVault Backup Plug-in for MySQL 简介 安装或删除插件 配置插件 备份数据 恢复数据 使用本机 MySQL 复制 在故障转移群集环境中使用插件 故障排除

备份数据:概述

在执行备份之前,请查看以下主题中的信息:

如果您打算使用 MySQL Standard/Community 选项,请查看以下指南和信息:

如果您的环境使用名称中包含特殊字符的数据库(如连字符),请注意以下限制:

如果数据库名称包含连字符,则在 MyISAM 备份方法设置为 4.2 版中的 Mysqldump 选项时,将备份 MyISAM 表。备份和还原的性能可能会受到不利影响。
如果 MyISAM 备份方法设置为使用默认锁定并复制表文件选项,并且数据库名称包含连字符,则不会备份 MyISAM 表。由于插件绕过 MySQL 命令并尝试直接复制表文件,因此不会生成备份。插件记录了一条错误消息,指示无法找到表文件,然后使备份任务失败而不创建保存集。
如果您希望维持原始行为并出于任何原因(例如使用 Mysqldump 选项时导致性能低于最佳水平)仍然使用锁定并复制表文件选项,则可以这样做。为此,请在插件配置文件“nvmysql.cfg”中手动将 ValidateDatabaseDirectory 参数设置为 TRUE,如下所示:
使用 MIXED 二进制日志记录格式

使用 MIXED 二进制日志记录格式时,MySQL 不强制使用 USE 语句。因此,Quest 建议所有数据库用户和程序确保已修改的表位于 USE 选定的数据库中,并且不会发出跨数据库更新。如果本指南不适合您的环境,Quest 建议您不要使用 MIXED 二进制日志记录格式。

重要信息: 如果使用了 MIXED 二进制日志记录格式,增量备份和差异备份任务将完成并伴有警告。

如果您的环境使用 MIXED 二进制日志记录格式,则可能会阻止在 PIT 恢复期间重播二进制日志条目。在恢复过程中,插件使用带有“‑‑database”选项的 mysqlbinlog,以便仅重播与还原任务选择的数据库相关的条目。如果未使用“--database”,则重播所有条目,这将影响所有数据库。使用 MIXED 二进制日志记录格式时,条目的写入方式可能会阻止带有“‑‑database”选项的 mysqlbinlog 重播全部或部分条目。有关详细信息,请参阅 https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html#option_mysqlbinlog_database

要确保 MIXED 二进制日志记录格式与“--database”选项一起正常工作,必须在选择了某一数据库的 USE 语句下分发对该数据库进行特定更新的所有事务。

如果未还原增量备份或差异备份,并且 mysqlbinlog 应用了 MySQL Server 中的当前二进制日志,也会出现这种情况。出现这种情况是因为二进制日志的写入方式,而不是因为二进制日志在备份中的存储方式。

重要信息: 确保您修改的表属于 USE 语句中指定的数据库,这适用于通过 MySQL 命令提示符生成的事务。它还适用于通过与 MySQL Server 数据库交互的脚本、程序和其他应用程序生成的事务。

以下示例演示了 MIXED 对恢复行为的不同影响方式。

示例 1:在此示例中,一行数据插入 my_databasemy_table 中。没有 USE 语句,因此使用的数据库是默认数据库,例如 mysql 数据库。如果 binlog_format 设置为 MIXED,则 mysqlbinlog“‑-database my_database”选项应用于二进制日志时,不会重播以下事务。
示例 2:在此示例中,一行数据插入 my_databasemy_table 中。有一个 USE 语句,但指定了另外数据库,即未在 USE 语句中选择 my_database 数据库。如果 binlog_format 设置为 MIXED,则 mysqlbinlog“‑-database my_database”选项应用于二进制日志时,不会重播以下事务。
示例 3:在此示例中,一行数据插入 my_databasemy_table 中,并在 USE 语句中选择了 my_database。如果 binlog_format 设置为 MIXED,则 mysqlbinlog“‑-database my_database”选项应用于二进制日志时,会重播以下事务。
示例 4:在此示例中,存在两个插入查询。第一个插入是为 my_database 执行的,该数据库与在 USE 语句中选择的数据库不同。第二个插入是在选择了 my_databaseUSE 语句的范围内完成的。如果 binlog_format 设置为 MIXED,则不会重播第一个插入,因为在 USE 语句中未指定 my_database,但会重播第二个插入,因为在 USE 语句中指定了 my_database

如果您打算使用 MySQL Enterprise Backup 选项,请查看以下指南和信息:

示例:您有一个含有两个数据库(DB1 和 DB2)的 MySQL 实例。每个数据库包含两个表:DB1 含有 T1_InnoDB 和 T1_MyISAM,而 DB2 含有 T2_InnoDB 和 T2_MyISAM。如果备份 T1_MyISAM 和 T2_MyISAM,则还会备份 T1_InnoDB 和 T2_InnoDB。如果只包含其中一个 InnoDB 表,则仅备份该 InnoDB 表。如果选择其中一个数据库,则仅备份该数据库中的表。
示例:您有一个含有两个数据库(DB1 和 DB2)的 MySQL 实例。每个数据库包含两个表:DB1 含有 T1_InnoDB 和 T1_MyISAM,而 DB2 含有 T2_InnoDB 和 T2_MyISAM。如果备份 DB1 和 DB2 并排除 T1_InnoDB 和 T2_InnoDB,则还会备份 T1_InnoDB 和 T2_InnoDB。如果只排除两个 InnoDB 表中的一个,则仅备份另外一个 InnoDB 表。
此描述反映了 MySQL Enterprise Backup(mysqlbackup 实用程序)的当前行为;在 MySQL 3.12 版之后的后续版本中,此行为可能会发生变化。
在 MySQL 5.6 和更高版本中,默认情况下启用 innodb_file_per_table 配置选项。禁用 innodb_file_per_table 选项时创建的任何 InnoDB 表都存储在 InnoDB 系统表空间中,无法在备份中删除它们。如果必须将 InnoDB 表放在表空间外部,请在 MySQL 中启用 innodb_file_per_table 选项之后创建该表。每个 .ibd 文件仅包含一个表的数据和索引。

定义备份策略

在定义 MySQL 备份策略时,回答下列问题:

是否要使用 MySQL Standard/CommunityMySQL Enterprise Backup 选项?即使您的环境中同时实施了两个版本,您也只能对插件使用一个策略。使用基于 MEB 的方法或基于 mysqldump 的方法,不能两者混合使用。
如果使用基于 MEB 的选项,则 mysqlbackup 实用程序或适用的 NetVault Backup 脚本将对所有选择备份的数据库对象运行一次,并且 mysqlbackup 输出日志将包含在任务日志中。备份数据涉及两个阶段。在第一阶段,复制所有 InnoDB 表。在第二阶段,复制所有其他类型的表。除了支持 InnoDB 表的热备份外,基于 MEB 的选项还支持提高备份性能。

回答这些问题有助于您确定应该实施备份的类型和频率。

查看 MySQL Standard/Community 的备份类型

如果使用 MySQL Standard/Community 选项,插件将使用 mysqldump 提供以下类型的备份:

了解这些备份的不同之处,是选择与每个 MySQL 实例的数据保护要求相匹配的合适备份序列的第一步。

MySQL Standard/Community 选项的完整备份中,插件使用 mysqldump 实用程序来备份实例中包含的每个数据库。完整备份是任何备份策略的基础,因为它们为几乎每个还原方案提供起点。使用插件生成的完整备份可用于还原整个实例、单个或多个数据库以及单个或多个表。

完整备份或增量备份后清除二进制日志选项可确保在完整备份或增量备份后清除二进制日志。当插件与标准 MySQL Server 配置一起使用,启用 MySQL 复制处于禁用状态且启用时间点恢复处于启用状态时,默认启用此选项。当插件连接到群集时,此选项处于禁用状态;您必须在插件外部管理二进制日志的清除。

重要信息: 在由 NetVault Backup 服务器管理群集化和标准化 MySQL Server 的混合环境中,不要将为标准 MySQL Server 创建的备份选项集重复用于基于 MySQL 的群集。

如果您未选择清除二进制日志...选项,则插件将跟踪其配置文件中的上次备份的日志;您可以自行决定手动清除二进制日志。例如,如果您使用的是 MySQL 复制环境,在将二进制日志复制到从属实例之前,您不想从主实例中清除二进制日志,则您负责手动清除二进制日志。

增量备份将备份自上次完整备份或增量备份以来生成的事务日志,然后清除二进制日志。由于二进制日志是基于实例的,因此每个数据库的事务日志都作为一个单元进行备份和清除。

增量备份对于减少介质故障或数据损坏后的数据丢失至关重要。您可以使用增量备份还原到数据损坏(例如更新不当或表丢弃)之前和之后的某个时间。与完整备份不同,增量备份在备份期间不需要只读访问权限。

MySQL 增量备份要求您使用“‑log-bin”选项启动 MySQL 实例,该选项可启用二进制日志。此过程在 在 MySQL Server 上启用二进制日志(仅限 Standard/Community 选项) 中进行了概述。有关详细信息,请参阅《MySQL 参考指南》中的二进制日志部分。

如前所述,完整备份或增量备份后清除二进制日志选项可确保在完整备份或增量备份后清除二进制日志。如果不使用此选项,插件将跟踪其配置文件中的上次备份的日志,您可以自行决定手动清除二进制日志。。

差异备份将备份自上次完整备份或增量备份以来生成的事务日志。但是,在备份完成时不会清除二进制日志。因此,后续差异备份的大小和持续时间会增加。大小和持续时间会增加是因为此类型的每个备份都包含二进制日志,这些日志也包含在上次差异备份自上次差异备份以来生成的二进制日志中。例如,如果在周日执行完整备份,并且计划在周一至周六执行差异备份,则周一的差异备份包括自周日完整备份以来生成的二进制日志,而周二的差异备份包括周一生成的二进制日志和周二生成的日志。周三的差异备份包括周一、周二和周三的二进制日志,依此类推。

与增量备份类似,差异备份也可用于减少介质故障或数据损坏后的数据丢失,并能够还原到故障或损坏之前和之后的某个时间。与完整备份不同,差异备份在备份期间需要只读访问权限。

差异备份要求您使用“‑log-bin”选项启动 MySQL 实例,该选项可启用二进制日志。此过程在 在 MySQL Server 上启用二进制日志(仅限 Standard/Community 选项) 中进行了概述。有关详细信息,请参阅《MySQL 参考指南》中的二进制日志部分。

由于增量备份会在备份二进制日志后清除这些日志,因此后续增量备份的速度会更快,因为仅备份自上次增量备份以来创建的二进制日志。但是,使用增量备份的还原序列要求完整备份和故障点之间的每一次增量备份都必须通过连续的方式进行还原。由于启动多个还原任务所需的 DBA 干预增加,此过程会导致还原时间较长。

由于差异备份不会在二进制日志备份后清除这些日志,因此后续的每个差异备份所需的时间将较长,因为自上次完整备份以来的所有二进制日志都包含在此备份中。然而,使用差异备份的还原序列要求在还原完整备份后仅还原一个差异备份。此过程可加快还原速度,因为在还原过程中所需的 DBA 干预减少。

有时必须为特殊目的进行备份,并且不应影响整个数据库的整体备份和还原过程。例如,备份可以作为测试环境的源,也可以作为复制从属实例的初始同步。仅复制单个数据库/表的备份是为这些特殊目的而设计的,因为它们允许您“复制”MySQL 环境。“仅复制”备份独立于已建立的备份序列,不会影响完整备份、增量备份或差异备份的可恢复性。但是,它们能作为完整备份的替代方式。

如“仅复制单个数据库/表的备份”所述,“复制整个数据库的备份”选项仅用于特殊目的,因为它会创建选定 MySQL 数据库的副本,包括选定数据库的所有相应 InnoDB 表。“复制”备份独立于已建立的备份序列,不会影响完整备份、增量备份或差异备份的可恢复性。但是,它们能作为完整备份的替代方式。

对于每个选定的数据库,即使只选择了数据库的一个表,“复制整个数据库的备份”选项也会备份整个数据库。此选项允许您选择单个数据库进行备份,但不允许您选择单个表。此外,此选项仅支持备份 InnoDB 表。

“仅复制单个数据库/表的备份”选项允许您选择单个数据库和单个表,并且可以在备份中包括 InnoDB 和 MyISAM 表。但是,对于“复制整个数据库的备份”选项,备份的完成速度通常比“仅复制单个数据库/表的备份”选项的完成速度要快。

查看 MySQL Enterprise Backup 的备份类型

对于 MySQL Enterprise Backup 选项,该插件对所有选定的数据库对象运行 mysqlbackup 命令一次,以实现以下类型的备份:完整、增量和 TTS。

MySQL Enterprise Backup 选项的完整备份中,该插件使用 mysqlbackup 实用程序或适用的 NetVault Backup 脚本来备份实例中包含的每个选定数据库对象。完整备份是任何备份策略的基础,因为它们为几乎每个还原方案提供起点。使用插件生成的完整备份可用于还原整个实例、单个或多个数据库以及单个或多个表。

对于 InnoDB 表,仅备份自上次完整备份或增量备份以来发生更改的数据。对于非 InnoDB 表,如果自上次完整备份或增量备份以来表中发生了任何更改,则备份整个表。

如果您执行 TTS 备份,插件将分发完整备份,并添加 “--use-tts” MySQL 选项。

如果要生成 TTS 备份,请注意以下限制:

仅在启用了 innodb_file_per_table 选项的情况下创建的表才会包含在备份中。

有关使用“--use-tts”选项的更多限制,请参见 https://dev.mysql.com/doc/mysql-enterprise-backup/4.0/en/backup-partial-options.html

相关文档

The document was helpful.

选择评级

I easily found the information I needed.

选择评级