• |
如果您打算使用 MySQL 标准/社区选项,请查看以下指导准则和信息:
如果您的环境使用名称中包含特殊字符(如连字符)的数据库名称,请注意以下限制:
• |
• |
如果 MyISAM 备份方法设为使用锁定和复制表文件选项,且数据库名称包含连字符,MyISAM 表不会进行备份。无法生成备份是因为插件会绕开 MySQL 命令并试图直接复制表文件。插件记录一条错误消息,指明无法找到表文件,因而无法在不创建保存集的情况下执行备份任务。 |
如果使用了 MIXED 二进制日志记录格式,则 MySQL 不强制使用 USE 语句。因此,Quest 建议所有数据库用户和程序应确保修改后的表处于 USE 选定的数据库中,并且不会发出交叉数据库更新。如果此准则不适合您的环境,Quest 建议您不要使用 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 服务器应用当前二进制日志,则会发生这种情况。出现这种情况是因为二进制日志的写入方式,而不是因为二进制日志存储在备份中的方式。
以下示例展示了 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 将“--databasemy_database”选项应用到二进制日志时,将会回放以下事务。 |
• |
示例 4:在此示例中,有两个插入查询。第一个插入是针对 my_database 完成的,它与 USE 语句中选择的数据库不同。第二个插入是在选择 my_database 的 USE 语句范围下完成的。如果 binlog_format 设置为 MIXED,则第一个插入不会回放,因为 USE 语句中未指定 my_database,但第二个插入会回放,因为 USE 语句中指定了 my_database。 |
如果您打算使用 MySQL 企业备份选项,请查看以下指导准则和信息:
• |
在 MySQL 5.6 和更高版本中,innodb_file_on_table 配置选项在默认情况下处于启用状态。使用 innodb_file_per_table 选项创建的任何 InnoDB 表都存储在 InnoDB 系统表空间中,不能从备份中将其忽略。如果您必须将 InnoDB 表放在表空间之外,请在 MySQL 中启用 innofdb_file_on_table 选项。每个 .ibd 文件都只包含一个表的数据和索引。 |
• |
我是想使用 MySQL 标准/社区还是 MySQL 企业备份选项?即使您在环境中实施了两种版本,也只能将一种策略与插件配合使用。使用基于 MEB 的方法或 mysqldump 方法;您不能一起使用两者。 |
如果您使用 MySQL 标准/社区选项,插件会使用 mysqldump 提供以下类型的备份:
• |
• |
• |
了解这些备份的不同之处是选择与每个 MySQL 实例的数据保护要求相符的合适备份序列的第一步。
在 MySQL 标准/社区选项的完整备份中,插件会使用 mysqldump 实用程序来备份实例中包含的每个数据库。完整备份是所有备份策略的基础,因为它们提供了几乎所有还原方案的起点。插件生成的完整备份可用于还原整个实例,单个或多个数据库以及一个或多个数据库。
完整备份或增量备份后清除二进制日志选项可确保在完整备份或增量备份后清除二进制日志。默认情况下,在插件与标准 MySQL 服务器配置配合使用时,此选项处于启用状态,启用 MySQL 复制处于禁用状态,启用时点恢复处于启用状态。在插件连接到群集时,选项会被禁用;您必须设法在插件之外清除二进制日志。
如果您没有选择清除二进制日志...选项,插件会跟踪配置文件中的最后一个备份的日志;您可以自行决定手动清除二进制日志。例如,如果您使用的是一个 MySQL 复制环境,在此您想在二进制日志复制到从属实例中后再从主实例中将其清除,则您应负责手动清除二进制日志。
增量备份将备份自上次完整备份或增量备份后生成的事务日志,然后清除二进制日志。由于二进制日志是基于实例的,因此每个数据库的事务日志都将作为一个单元进行备份和清除。
增量备份对于在发生介质故障或数据损坏后减少数据损失至关重要。您可以使用增量备份还原到数据损坏之前和之后的某个时间,例如错误的更新或删除的表。与完整备份不同,增量备份在备份期间不需要只读访问。
MySQL 增量备份要求您使用“-log-bin”选项启动 MySQL 实例,从而启用二进制日志。启用 MySQL 服务器上的二进制日志 (仅限标准/社区选项)中概述了此过程。有关更多信息,请参阅 MySQL 参考指南的二进制日志部分。
如前所述,完整备份或增量备份后清除二进制日志选项可确保在完整备份或增量备份后清除二进制日志。如果您没有使用此选项,插件会跟踪配置文件中的最后一个日志备份;您可以手动自行决定清除二进制日志。
差异备份将备份自上次完整备份或增量备份后生成的事务日志。但是,在备份完成后不会清除二进制日志。因此,后续差异备份的大小和持续时间都会增加。大小和持续时间增加是因为这种类型的每个备份都包含之前备份差异中包含的二进制日志和之前的差异备份后生成的二进制日志。例如,如果星期日进行了一次完整备份,从星期一至星期六均安排了差异备份,那么星期一的差异备份就包含星期日以来生成的二进制日志,而星期二的差异备份则包含星期一生成的二进制日志和星期二生成的二进制日志。星期三的差异备份包含星期一、星期二和星期三的二进制日志,以此类推。
与增量备份类似,差异备份也可用来在发生介质故障或数据损坏后减少数据损失,并能够还原到故障或损坏之前的时间。与完整备份不同,差异备份在备份期间不需要只读访问。
差异备份要求您使用“-log-bin”选项启动 MySQL 实例,从而启用二进制日志。启用 MySQL 服务器上的二进制日志 (仅限标准/社区选项)中概述了此过程。有关更多信息,请参阅 MySQL 参考指南的二进制日志部分。
有时,出于特殊目的必须进行备份,且不能影响整个数据库的总体备份和还原过程。例如,备份可能是测试环境的来源,也可能作为复制从属实例的初始同步。仅单个数据库/表复制备份专为这些特殊用途而设计,让您可以“复制”一个 MySQL 环境。“仅复制”备份与已建立的备份序列无关,不影响完整备份、增量备份或差异备份的可恢复性。但是,它们不能用来代替完整备份。
按照对“仅单个数据库/表复制备份”的介绍,“整个数据库复制备份”选项仅用于特殊用途,因为它会创建选定 MySQL 数据库的副本,包含所选数据库的所有对应 InnoDB 表。“复制”备份与已建立的备份序列无关,不影响完整备份、增量备份或差异备份的可恢复性。但是,它们不能用来代替完整备份。
对于每个选定的数据库,即使只有一个数据库表被选定,“整个数据库备份”选项也会备份整个数据库。此选项允许您为备份选择单个数据库,但不允许您选择单个表。此外,此选项仅支持 InnoDB 表的备份。
对于 MySQL 企业备份选项,插件将为所有选定的数据库对象运行 mysqlbackup 命令一次,以实现以下类型的备份:完整、增量和 TTS。
在 MySQL 企业备份选项的完整备份中,插件会使用 mysqlbackup 实用程序或适用的 NetVault Backup 脚本来备份实例中包含的每个选定数据库对象。完整备份是所有备份策略的基础,因为它们提供了几乎所有还原方案的起点。插件生成的完整备份可用于还原整个实例,单个或多个数据库以及一个或多个数据库。
对于 InnoDB 表,仅备份自上次完整备份或增量备份后更改的数据。对于非 InnoDB 表,如果自上次完整备份或增量备份以来,在表中有内容更改,则备份整个表。
如果执行 TTS 备份,该插件将发出完整备份命令并添加“--use-tts”MySQL 选项。
• |
在备份中仅包含采用 innodb_file_of_table 选项创建的表。 |
有关使用“--use-tts”选项的更多限制,请参阅 https://dev.mysql.com/doc/mysql-enterprise-backup/4.0/en/backup-partial-options.html。
© ALL RIGHTS RESERVED. Terms of Use Privacy Cookie Preference Center