• |
如果您打算使用 MySQL Standard/Community 选项,请查看以下指南和信息:
如果您的环境使用名称中包含特殊字符的数据库(如连字符),请注意以下限制:
• |
• |
如果 MyISAM 备份方法设置为使用默认锁定并复制表文件选项,并且数据库名称包含连字符,则不会备份 MyISAM 表。由于插件绕过 MySQL 命令并尝试直接复制表文件,因此不会生成备份。插件记录了一条错误消息,指示无法找到表文件,然后使备份任务失败而不创建保存集。 |
使用 MIXED 二进制日志记录格式时,MySQL 不强制使用 USE 语句。因此,Quest 建议所有数据库用户和程序确保已修改的表位于 USE 选定的数据库中,并且不会发出跨数据库更新。如果本指南不适合您的环境,Quest 建议您不要使用 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_database 的 my_table 中。没有 USE 语句,因此使用的数据库是默认数据库,例如 mysql 数据库。如果 binlog_format 设置为 MIXED,则 mysqlbinlog 将“‑-database my_database”选项应用于二进制日志时,不会重播以下事务。 |
• |
示例 2:在此示例中,一行数据插入 my_database 的 my_table 中。有一个 USE 语句,但指定了另外数据库,即未在 USE 语句中选择 my_database 数据库。如果 binlog_format 设置为 MIXED,则 mysqlbinlog 将“‑-database my_database”选项应用于二进制日志时,不会重播以下事务。 |
• |
示例 3:在此示例中,一行数据插入 my_database 的 my_table 中,并在 USE 语句中选择了 my_database。如果 binlog_format 设置为 MIXED,则 mysqlbinlog 将“‑-database my_database”选项应用于二进制日志时,会重播以下事务。 |
• |
示例 4:在此示例中,存在两个插入查询。第一个插入是为 my_database 执行的,该数据库与在 USE 语句中选择的数据库不同。第二个插入是在选择了 my_database 的 USE 语句的范围内完成的。如果 binlog_format 设置为 MIXED,则不会重播第一个插入,因为在 USE 语句中未指定 my_database,但会重播第二个插入,因为在 USE 语句中指定了 my_database。 |
如果您打算使用 MySQL Enterprise Backup 选项,请查看以下指南和信息:
• |
在 MySQL 5.6 和更高版本中,默认情况下启用 innodb_file_per_table 配置选项。禁用 innodb_file_per_table 选项时创建的任何 InnoDB 表都存储在 InnoDB 系统表空间中,无法在备份中删除它们。如果必须将 InnoDB 表放在表空间外部,请在 MySQL 中启用 innodb_file_per_table 选项之后创建该表。每个 .ibd 文件仅包含一个表的数据和索引。 |
• |
是否要使用 MySQL Standard/Community 或 MySQL Enterprise Backup 选项?即使您的环境中同时实施了两个版本,您也只能对插件使用一个策略。使用基于 MEB 的方法或基于 mysqldump 的方法,不能两者混合使用。 |
如果使用 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 参考指南》中的二进制日志部分。
有时必须为特殊目的进行备份,并且不应影响整个数据库的整体备份和还原过程。例如,备份可以作为测试环境的源,也可以作为复制从属实例的初始同步。仅复制单个数据库/表的备份是为这些特殊目的而设计的,因为它们允许您“复制”MySQL 环境。“仅复制”备份独立于已建立的备份序列,不会影响完整备份、增量备份或差异备份的可恢复性。但是,它们不能作为完整备份的替代方式。
如“仅复制单个数据库/表的备份”所述,“复制整个数据库的备份”选项仅用于特殊目的,因为它会创建选定 MySQL 数据库的副本,包括选定数据库的所有相应 InnoDB 表。“复制”备份独立于已建立的备份序列,不会影响完整备份、增量备份或差异备份的可恢复性。但是,它们不能作为完整备份的替代方式。
对于每个选定的数据库,即使只选择了数据库的一个表,“复制整个数据库的备份”选项也会备份整个数据库。此选项允许您选择单个数据库进行备份,但不允许您选择单个表。此外,此选项仅支持备份 InnoDB 表。
对于 MySQL Enterprise Backup 选项,该插件对所有选定的数据库对象运行 mysqlbackup 命令一次,以实现以下类型的备份:完整、增量和 TTS。
在 MySQL Enterprise Backup 选项的完整备份中,该插件使用 mysqlbackup 实用程序或适用的 NetVault Backup 脚本来备份实例中包含的每个选定数据库对象。完整备份是任何备份策略的基础,因为它们为几乎每个还原方案提供起点。使用插件生成的完整备份可用于还原整个实例、单个或多个数据库以及单个或多个表。
对于 InnoDB 表,仅备份自上次完整备份或增量备份以来发生更改的数据。对于非 InnoDB 表,如果自上次完整备份或增量备份以来表中发生了任何更改,则备份整个表。
如果您执行 TTS 备份,插件将分发完整备份,并添加 “--use-tts” MySQL 选项。
• |
仅在启用了 innodb_file_per_table 选项的情况下创建的表才会包含在备份中。 |
有关使用“--use-tts”选项的更多限制,请参见 https://dev.mysql.com/doc/mysql-enterprise-backup/4.0/en/backup-partial-options.html。
© ALL RIGHTS RESERVED. Feedback 利用規約 プライバシー Cookie Preference Center