지금 지원 담당자와 채팅
지원 담당자와 채팅

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

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

备份数据:概述

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

如果您打算使用 MySQL 标准/社区选项,请查看以下指导准则和信息:

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

如果数据库名称包含连字符,MyISAM 表将在 MyISAM 备份方法设为版本 4.2 中引入的 Mysqldump 选项时备份。备份和还原性能可能会受到负面影响。
如果 MyISAM 备份方法设为使用锁定和复制表文件选项,且数据库名称包含连字符,MyISAM 表不会进行备份。无法生成备份是因为插件会绕开 MySQL 命令并试图直接复制表文件。插件记录一条错误消息,指明无法找到表文件,因而无法在不创建保存集的情况下执行备份任务。
如果您出于某种原因希望想维持初始行为并仍然使用锁定和复制表文件选项,如使用 Mysqldump 选项时会对性能产生不太理想的影响,您也可以继续使用。为了做到这一点,请手动在插件配置文件“nvmysql.cfg,”中将 ValidateDatabaseDirectory 参数设置为 TRUE,如下所示:
使用 MIXED 二进制日志记录格式

如果使用了 MIXED 二进制日志记录格式,则 MySQL 不强制使用 USE 语句。因此,Quest 建议所有数据库用户和程序应确保修改后的表处于 USE 选定的数据库中,并且不会发出交叉数据库更新。如果此准则不适合您的环境,Quest 建议您不要使用 MIXED 二进制日志记录格式。

重要信息: 如果使用了 MIXED 二进制日志记录格式,则增量备份和差异备份任务将以警告结束。

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

为了确保 MIXED 二进制日志记录格式与“-database”选项正确兼容,一个数据库的所有特定更新事务必须在选择该数据库的 USE 语句下发出。

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

重要信息: 确保您修改的表属于 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“--databasemy_database”选项应用到二进制日志时,将会回放以下事务。
示例 4:在此示例中,有两个插入查询。第一个插入是针对 my_database 完成的,它与 USE 语句中选择的数据库不同。第二个插入是在选择 my_databaseUSE 语句范围下完成的。如果 binlog_format 设置为 MIXED,则第一个插入不会回放,因为 USE 语句中未指定 my_database,但第二个插入会回放,因为 USE 语句中指定了 my_database

如果您打算使用 MySQL 企业备份选项,请查看以下指导准则和信息:

示例:您有一个 MySQL 实例具有两个数据库(DB1 和 DB2)。每个数据库包含两个表:DB1 具有 T1_InnoDB 和 T1_MyISAM,DB2 具有 T2_InnoDB 和 T2_MyISAM。如果您备份了 T1_MyISAM 和 T2_MyISAM,则 T1_InnoDB 和 T2_InnoDB 也会备份。如果您包含其中一个 InnoDB 表,则仅备份该 InnoDB 表。如果您选择其中一个数据库,则仅备份该数据库中的表。
示例:您有一个 MySQL 实例具有两个数据库(DB1 和 DB2)。每个数据库包含两个表:DB1 具有 T1_InnoDB 和 T1_MyISAM,DB2 具有 T2_InnoDB 和 T2_MyISAM。如果您备份 DB1 和 DB2 并排除 T1_InnoDB 和 T2_InnoDB,则 T1_InnoDB 和 T2_InnoDB 也会备份。如果您仅排除两个 InnoDB 表中的一个,则只备份另一个 InnoDB 表。
此描述反映了 MySQL 企业备份 mysqlbackup 实用程序的当前行为,此行为可能会在未来发布的 MySQL 版本(3.12 之后)中进行更改。
在 MySQL 5.6 和更高版本中,innodb_file_on_table 配置选项在默认情况下处于启用状态。使用 innodb_file_per_table 选项创建的任何 InnoDB 表都存储在 InnoDB 系统表空间中,不能从备份中将其忽略。如果您必须将 InnoDB 表放在表空间之外,请在 MySQL 中启用 innofdb_file_on_table 选项。每个 .ibd 文件都只包含一个表的数据和索引。

定义备份策略

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

我是想使用 MySQL 标准/社区还是 MySQL 企业备份选项?即使您在环境中实施了两种版本,也只能将一种策略与插件配合使用。使用基于 MEB 的方法或 mysqldump 方法;您不能一起使用两者。
如果您使用基于 MEB 的选项,则 mysqlbackup 实用程序或适用的 NetVault Backup 脚本将为您选择备份的所有数据库对象运行一次,并在任务日志中包含 mysqlbackup 输出日志。备份数据涉及两个阶段。第一阶段,复制所有 InnoDB 表。第二阶段,复制所有其他类型的表。除了支持 InnoDB 表的热备份之外,基于 MEB 的选项还支持备份性能改进。

回答这些问题可帮助您定义应实施的备份类型和频率。

查看 MySQL 标准/社区的备份类型

如果您使用 MySQL 标准/社区选项,插件会使用 mysqldump 提供以下类型的备份:

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

MySQL 标准/社区选项的完整备份中,插件会使用 mysqldump 实用程序来备份实例中包含的每个数据库。完整备份是所有备份策略的基础,因为它们提供了几乎所有还原方案的起点。插件生成的完整备份可用于还原整个实例,单个或多个数据库以及一个或多个数据库。

完整备份或增量备份后清除二进制日志选项可确保在完整备份或增量备份后清除二进制日志。默认情况下,在插件与标准 MySQL 服务器配置配合使用时,此选项处于启用状态,启用 MySQL 复制处于禁用状态,启用时点恢复处于启用状态。在插件连接到群集时,选项会被禁用;您必须设法在插件之外清除二进制日志。

重要信息: 在混合环境中,NetVault Backup 服务器同时管理群集和标准 MySQL 服务器,请重复使用备份选项集(为标准 MySQL 服务器创建)用于基于 MySQL 的群集。

如果您没有选择清除二进制日志...选项,插件会跟踪配置文件中的最后一个备份的日志;您可以自行决定手动清除二进制日志。例如,如果您使用的是一个 MySQL 复制环境,在此您想在二进制日志复制到从属实例中后再从主实例中将其清除,则您应负责手动清除二进制日志。

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

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

MySQL 增量备份要求您使用“-log-bin”选项启动 MySQL 实例,从而启用二进制日志。启用 MySQL 服务器上的二进制日志 (仅限标准/社区选项)中概述了此过程。有关更多信息,请参阅 MySQL 参考指南的二进制日志部分。

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

差异备份将备份自上次完整备份或增量备份后生成的事务日志。但是,在备份完成后不会清除二进制日志。因此,后续差异备份的大小和持续时间都会增加。大小和持续时间增加是因为这种类型的每个备份都包含之前备份差异中包含的二进制日志之前的差异备份后生成的二进制日志。例如,如果星期日进行了一次完整备份,从星期一至星期六均安排了差异备份,那么星期一的差异备份就包含星期日以来生成的二进制日志,而星期二的差异备份则包含星期一生成的二进制日志和星期二生成的二进制日志。星期三的差异备份包含星期一、星期二和星期三的二进制日志,以此类推。

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

差异备份要求您使用“-log-bin”选项启动 MySQL 实例,从而启用二进制日志。启用 MySQL 服务器上的二进制日志 (仅限标准/社区选项)中概述了此过程。有关更多信息,请参阅 MySQL 参考指南的二进制日志部分。

由于增量备份会在备份后清除二进制日志,后续增量备份的速度会更快,因为只会备份自上次增量备份之后创建的二进制日志。但是,使用增量备份的还原序列要求必须连续还原完整备份和故障点之间的每个增量。由于需要增加数据库管理员干预来启动多个还原任务,此进程可能导致还原时间更长。

由于差异备份不会在备份后清除二进制日志,每个后续的差异备份都需要更长的时间,因为自上次完整备份以来的所有二进制日志都包含在备份中。但是,使用差异备份的还原序列要求在还原完整备份后仅还原一个差异备份。此进程可加快还原速度,因为在还原进程中需要的数据库管理员干预较少。

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

按照对“仅单个数据库/表复制备份”的介绍,“整个数据库复制备份”选项仅用于特殊用途,因为它会创建选定 MySQL 数据库的副本,包含所选数据库的所有对应 InnoDB 表。“复制”备份与已建立的备份序列无关,不影响完整备份、增量备份或差异备份的可恢复性。但是,它们不能用来代替完整备份。

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

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

查看 MySQL 企业备份的备份类型

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

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

对于 InnoDB 表,仅备份自上次完整备份或增量备份后更改的数据。对于非 InnoDB 表,如果自上次完整备份或增量备份以来,在表中有内容更改,则备份整个表。

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

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

在备份中仅包含采用 innodb_file_of_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.

평가 결과 선택