DBA 已经建立了一个备份策略,在该策略中,完整备份在每个周日晚上 11:00 执行,差异备份在周一至周六晚上 11:00 执行。由于 DBA 执行差异备份,因此每次这种形式的备份之后都会保留二进制日志,这将产生时间更长的备份,但整体还原时间会更快。
周四上午 9:00,DBA 发现用户遇到 Orders 表“未找到表”错误。DBA 随后发现该表已不再存在,因为开发人员在 DBA 上班前的周四早些时候无意中删除了该表。
DBA 决定执行直到上次差异备份时间点的完整恢复 — 在周三晚上执行备份。
1 |
选择周日晚上执行的完整备份:在创建还原任务 — 选择保存集页上,DBA 选择与周日完整备份相对应的备份保存集。 |
2 |
将所有与还原相关的选项保留为默认值:不使用这些选项。 |
1 |
选择周三晚上执行差异备份:在创建还原任务 — 选择保存集页上,DBA 选择与周三差异备份相对应的备份保存集。 |
2 |
3 |
重要信息: DBA 不必还原周一和周二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,会回到周日晚上的完整备份;也就是说,周三晚上的备份包括周一、周二和周三生成的所有二进制日志 — 最后回到周日的完整备份。 |
在以下示例中,完整备份和差异备份方案已准备就绪,DBA 希望将数据恢复到特定时间。
周四上午 9:00,DBA 发现用户遇到 Orders 表“未找到表”错误。DBA 随后发现该表已不再存在,因为开发人员周三晚上 8:00无意中删除了该表。
DBA 必须执行恢复,以便将数据库还原到开发人员周三晚上 8:00 删除表之前的时间。因此,将执行以下阶段:
1 |
选择周日晚上执行的完整备份:在创建还原任务 — 选择保存集页上,DBA 选择与周日完整备份相对应的备份保存集。 |
2 |
将所有与还原相关的选项保留为默认值:不使用这些选项。 |
1 |
选择周三晚上执行差异备份:在创建还原任务 — 选择保存集页上,DBA 选择与周三差异备份相对应的备份保存集。 |
重要信息: DBA 不必还原周一和周二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,会回到周日晚上的完整备份;也就是说,周三晚上的备份包括周一、周二和周三生成的所有二进制日志 — 最后回到周日的完整备份。 |
2 |
在与还原相关的“选项”选项卡上设置特定选项:DBA 设置以下选项: |
• |
执行 PIT 恢复:选择此选项以指定 PIT 恢复并启用所有相关选项。 |
• |
还原和应用二进制日志(在已知时间或位置时使用):选择此选项以指定备份中供使用的二进制日志。 |
• |
基于时间的 PIT:选择此选项作为类型。 |
• |
3 |
周四上午 9:00,DBA 发现用户遇到 Orders 表“未找到表”错误。DBA 随后发现该表已不再存在,因为开发人员周三晚上 8:00无意中删除了该表。
DBA 决定恢复到晚上 8:00 发出 Drop Table 命令之前的时间。DBA 还希望恢复从删除 Orders 表之后一直到备份的二进制日志结束期间发生在其余表上的事务。除了恢复删除的表之外,此决定还确保尽可能多地恢复事务。因此,将执行以下阶段:
1 |
选择周日晚上执行的完整备份:在创建还原任务 — 选择保存集页上,DBA 选择与周日完整备份相对应的备份保存集。 |
2 |
将所有与还原相关的选项保留为默认值:不使用这些选项。 |
1 |
选择周三晚上执行差异备份:在创建还原任务 — 选择保存集页上,DBA 选择与周三差异备份相对应的备份保存集。 |
重要信息: DBA 不必还原周一和周二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,会回到周日晚上的完整备份;也就是说,周三晚上的备份包括周一、周二和周三生成的所有二进制日志 — 最后回到周日的完整备份。 |
2 |
在与还原相关的“选项”选项卡上设置特定选项:DBA 设置以下选项: |
• |
执行 PIT 恢复:选择此选项以指定 PIT 恢复并启用所有相关选项。 |
• |
还原和应用二进制日志(在已知时间或位置时使用):选择此选项以指定备份中供使用的二进制日志。 |
• |
基于时间的 PIT:选择此选项作为类型。 |
• |
• |
在错误/不良 SQL 语句之后启用恢复:选择此选项以恢复删除 Order 表后发生的事务,并在开始日期/时间中输入较晚的时间和日期。最后,由于恢复要一直执行到还原的二进制日志结束,因此为停止日期/时间选择了无选项。 |
3 |
周四上午 9:00,DBA 发现用户遇到 Orders 表“未找到表”错误。DBA 随后发现该表已不再存在,因为开发人员周四早上 6:00 无意中删除了该表。
DBA 必须执行恢复,以便将数据库还原到开发人员周四早上 6:00 删除表之前的时间。
1 |
选择周日晚上执行的完整备份:在创建还原任务 — 选择保存集页上,DBA 选择与周日完整备份相对应的备份保存集。 |
2 |
将所有与还原相关的选项保留为默认值:不使用这些选项。 |
1 |
选择周三晚上执行差异备份:在创建还原任务 — 选择保存集页上,DBA 选择与周三差异备份相对应的备份保存集。 |
重要信息: DBA 不必还原周一和周二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,会回到周日晚上的完整备份;也就是说,周三晚上的备份包括周一、周二和周三生成的所有二进制日志 — 最后回到周日的完整备份。 |
2 |
在与还原相关的“选项”选项卡上设置特定选项:DBA 设置以下选项: |
• |
执行 PIT 恢复:选择此选项以指定 PIT 恢复并启用所有相关选项。 |
• |
还原和应用二进制日志(在已知时间或位置时使用):选择此选项以指定要使用备份中包含的二进制日志。 |
• |
包含当前二进制日志:选择此选项可使用当前二进制日志应用从周三完成备份到发出 Drop Table 命令之间出现的条目。 |
• |
基于时间的 PIT:选择此选项作为类型。 |
• |
3 |
周四上午 9:00,DBA 发现用户遇到 Orders 表“未找到表”错误。DBA 随后发现该表已不再存在,因为开发人员周四早上 6:00 无意中删除了该表。
DBA 决定恢复到 Drop Table 命令发出之前的时间。DBA 还希望恢复从删除 Orders 表之后一直到当前二进制日志结束期间发生在其余表上的事务。除了恢复删除的表之外,此决定还确保尽可能多地恢复事务。因此,将执行以下阶段:
1 |
选择周日晚上执行的完整备份:在创建还原任务 — 选择保存集页上,DBA 选择与周日完整备份相对应的备份保存集。 |
2 |
将所有与还原相关的选项保留为默认值:不使用这些选项。 |
1 |
选择周三晚上执行差异备份:在创建还原任务 — 选择保存集页上,DBA 选择与周三差异备份相对应的备份保存集。 |
重要信息: DBA 不必还原周一和周二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,会回到周日晚上的完整备份;也就是说,周三晚上的备份包括周一、周二和周三生成的所有二进制日志 — 最后回到周日的完整备份。 |
2 |
在与还原相关的“选项”选项卡上设置特定选项:DBA 设置以下选项: |
• |
执行 PIT 恢复:选择此选项以指定 PIT 恢复并启用所有相关选项。 |
• |
还原和应用二进制日志(在已知时间或位置时使用):选择此选项以指定要使用备份中包含的二进制日志。 |
• |
包含当前二进制日志:选择此选项可使用当前二进制日志应用从周三完成备份到发出 Drop Table 命令之间出现的条目。 |
• |
基于时间的 PIT:选择此选项作为类型。 |
• |
• |
在错误/不良 SQL 语句之后启用恢复:选择此选项以恢复删除 Order 表后发生的事务,并在开始日期/时间中输入较晚的时间和日期。最后,由于恢复要一直执行到当前二进制日志结束,因此为停止日期/时间选择了无选项。 |
3 |
在以下示例中,完整备份和增量备份方案已准备就绪,DBA 希望将数据恢复到特定时间,但使用更明确的方法来定义时间。此过程是使用 MySQL 二进制日志中标识的“位置值”完成的。
周四上午 9:00,DBA 发现用户遇到 Orders 表“未找到表”错误。DBA 随后发现该表已不再存在,因为开发人员周三晚上 8:00无意中删除了该表。
DBA 决定恢复到 Drop Table 命令发出之前的时间。此外,DBA 想要更精确的恢复,因此决定使用基于位置的恢复。以下阶段说明了此过程:
1 |
选择周日晚上执行的完整备份:在创建还原任务 — 选择保存集页上,DBA 选择与周日完整备份相对应的备份保存集。 |
2 |
将所有与还原相关的选项保留为默认值:不使用这些选项。 |
在此阶段,只有在周三晚上的差异备份中记录的二进制日志才会还原到临时位置。此过程允许 DBA 在日志中找到标记 Orders 表何时被删除的特定位置。
1 |
选择周三晚上执行差异备份:在创建还原任务 — 选择保存集页上,DBA 选择与周三差异备份相对应的备份保存集。 |
2 |
在与还原相关的“选项”选项卡上设置特定选项:DBA 设置以下选项: |
• |
执行 PIT 恢复:选择此选项以启用此形式的还原和所有相关选项。 |
• |
将日志还原到临时目录以确定时间或位置:选择此选项可仅还原周三晚上差异备份中包含的二进制日志。 |
• |
根据还原的二进制日志使用 mysqlbinlog 实用程序:此步骤在 NetVault Backup 外部执行,以标识 DBA 不希望还原的 Drop Table 命令的位置。(有关此实用程序和过程的信息,请参阅《MySQL 参考指南》。)在此过程中,DBA 在“MYSQLSVR-bin.000009”二进制日志中将 Drop Table 命令标识为日志位置“805”,该日志已还原到 MySQL Server 上的临时位置,并且记录了这两个值。
从还原的二进制日志确定位置后,将使用周三的差异备份执行 PIT 还原。
1 |
选择周三晚上执行差异备份:在创建还原任务 — 选择保存集页上,DBA 再次选择与周三差异备份相对应的备份保存集。 |
重要信息: DBA 不必还原周一和周二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,会回到周日晚上的完整备份;也就是说,周三晚上的备份包括周一、周二和周三生成的所有二进制日志 — 最后回到周日的完整备份。 |
2 |
在与还原相关的“选项”选项卡上设置特定选项:DBA 设置以下选项: |
• |
执行 PIT 恢复:选择此选项以启用此形式的还原和所有相关选项。 |
• |
应用临时目录中的二进制日志:选择此选项可定位在此过程的最后阶段中还原到临时位置的二进制日志。由于还原的二进制日志用于确定 Drop Table 命令占用的特定位置,因此选择此选项以指示插件使用相同的二进制日志。 |
• |
在错误/不良 SQL 语句之前启用恢复:选择此选项,并将停止位置设置为“804”,即二进制日志中在使用 mysqlbinlog 标识的 Drop Table 命令位置之前存在的位置。包含停止位置的二进制日志选项用于选择已还原到临时目录的二进制日志“MYSQLSVR-bin.000009”。 |
3 |
周四上午 9:00,DBA 发现用户遇到 Orders 表“未找到表”错误。DBA 随后发现该表已不再存在,因为开发人员周三晚上 8:00无意中删除了该表。
DBA 决定恢复到 Drop Table 命令发出之前的时间。DBA 还希望恢复从删除 Orders 表之后到已备份二进制日志结束之间发生在剩余表中的事务。此外,DBA 想要更精确的恢复,因此决定使用基于位置的恢复。以下阶段说明了此过程:
1 |
选择周日晚上执行的完整备份:在创建还原任务 — 选择保存集页上,DBA 选择与周日完整备份相对应的备份保存集。 |
2 |
将所有与还原相关的选项保留为默认值:不使用这些选项。 |
在此阶段,只有在周三晚上的增量备份中记录的二进制日志才会还原到临时位置。此过程允许 DBA 在日志中找到标记 Orders 表何时被删除的特定位置。
1 |
选择周三晚上执行差异备份:在创建还原任务 — 选择保存集页上,DBA 选择与周三差异备份相对应的备份保存集。 |
2 |
在与还原相关的“选项”选项卡上设置特定选项:DBA 设置以下选项: |
• |
执行 PIT 恢复:选择此选项以启用此形式的还原和所有相关选项。 |
• |
将日志还原到临时目录以确定时间或位置:选择此选项可仅还原周三晚上差异备份中包含的二进制日志。 |
• |
根据还原的二进制日志使用 mysqlbinlog 实用程序:此步骤在 NetVault Backup 外部执行,以标识 DBA 不希望还原的 Drop Table 命令的位置。(有关此实用程序和过程的信息,请参阅《MySQL 参考指南》。)在此过程中,DBA 在“MYSQLSVR-bin.000009”二进制日志中将 Drop Table 命令标识为日志位置“805”,该日志已还原到 MySQL Server 上的临时位置,并且记录了这两个值。
从还原的二进制日志确定位置后,将使用周三的增量备份执行 PIT 还原。
1 |
选择周三晚上执行差异备份:在创建还原任务 — 选择保存集页上,DBA 再次选择与周三差异备份相对应的备份保存集。 |
重要信息: DBA 不必还原周一和周二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,会回到周日晚上的完整备份;也就是说,周三晚上的备份包括周一、周二和周三生成的所有二进制日志 — 最后回到周日的完整备份。 |
2 |
在与还原相关的“选项”选项卡上设置特定选项:DBA 设置以下选项: |
• |
执行 PIT 恢复:选择此选项以启用此形式的还原和所有相关选项。 |
• |
应用临时目录中的二进制日志:选择此选项可定位在此过程的最后阶段中还原到临时位置的二进制日志。由于还原的二进制日志用于确定 Drop Table 命令占用的特定位置,因此选择此选项以指示插件使用相同的二进制日志。 |
• |
在错误/不良 SQL 语句之前启用恢复:选择此选项,并将停止位置设置为“804”,即二进制日志中在使用 mysqlbinlog 标识的 Drop Table 命令位置之前存在的位置。包含停止位置的二进制日志选项用于选择已还原到临时目录的二进制日志“MYSQLSVR-bin.000009”。 |
• |
在错误/不良 SQL 语句之后启用恢复:选择此选项,并将开始位置设置为“806”,即二进制日志中在使用 mysqlbinlog 标识的 Drop Table 命令位置之后存在的位置。包含停止位置的二进制日志选项用于选择已还原到临时目录的二进制日志“MYSQLSVR-bin.000009”。最后,由于恢复要一直执行到指定的二进制日志结束,因此为停止位置选择了无选项。 |
3 |
周四上午 9:00,DBA 发现用户遇到 Orders 表“未找到表”错误。DBA 随后发现该表已不再存在,因为开发人员周四早上 6:00 无意中删除了该表。
DBA 必须执行恢复,以便将数据库还原到开发人员周四早上 6:00 删除表之前的时间。此外,DBA 想要更精确的恢复,因此决定使用基于位置的恢复。以下阶段说明了此过程:
1 |
选择周日晚上执行的完整备份:在创建还原任务 — 选择保存集页上,DBA 选择与周日完整备份相对应的备份保存集。 |
2 |
将所有与还原相关的选项保留为默认值:不使用这些选项。 |
根据当前的二进制日志使用 mysqlbinlog 实用程序:此步骤在 NetVault Backup 外部执行,以标识 DBA 不希望还原的 Drop Table 命令的位置。(有关此实用程序和过程的信息,请参阅《MySQL 参考指南》。)在此过程中,DBA 在当前二进制日志“MYSQLSVR-bin.000009”中将 Drop Table 命令标识为日志位置“805”。
从还原的二进制日志确定位置后,将使用周三的差异备份执行 PIT 还原。
1 |
选择周三晚上执行差异备份:在创建还原任务 — 选择保存集页上,DBA 再次选择与周三差异备份相对应的备份保存集。 |
重要信息: DBA 不必还原周一和周二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,会回到周日晚上的完整备份;也就是说,周三晚上的备份包括周一、周二和周三生成的所有二进制日志 — 最后回到周日的完整备份。 |
2 |
在与还原相关的“选项”选项卡上设置特定选项:DBA 设置以下选项: |
• |
执行 PIT 恢复:选择此选项以启用此形式的还原和所有相关选项。 |
• |
还原和应用二进制日志(在已知时间或位置时使用):选择此选项以指示插件使用备份中包含的二进制日志。 |
• |
包含当前二进制日志:选择此选项以指示 NetVault Backup 使用当前的二进制日志应用周三晚上差异备份之后发生的所有数据库事务。此步骤恢复在周三晚上完成差异备份与发出 Drop Table 命令之间发生的所有事务。 |
• |
在错误/不良 SQL 语句之前启用恢复:选择此选项,并将停止位置设置为“804”,即当前二进制日志中在使用 mysqlbinlog 标识的 Drop Table 命令位置之前存在的位置。将包含停止位置的二进制日志设置为其他文件,并在文本框中输入当前二进制文件的名称,例如“MYSQLSVR-bin.000009”。 |
周四上午 9:00,DBA 发现用户遇到 Orders 表“未找到表”错误。DBA 随后发现该表已不再存在,因为开发人员周四早上 6:00 无意中删除了该表。
DBA 决定恢复到 Drop Table 命令发出之前的时间。DBA 还希望恢复从删除 Orders 表之后到当前二进制日志结束之间发生在剩余表中的事务。此外,DBA 想要更精确的恢复,因此决定使用基于位置的恢复。以下阶段说明了此过程:
1 |
选择周日晚上执行的完整备份:在创建还原任务 — 选择保存集页上,DBA 选择与周日完整备份相对应的备份保存集。 |
2 |
将所有与还原相关的选项保留为默认值:不使用这些选项。 |
根据当前的二进制日志使用 mysqlbinlog 实用程序:此步骤在 NetVault Backup 外部执行,以标识 DBA 不希望还原的 Drop Table 命令的位置。(有关此实用程序和过程的信息,请参阅《MySQL 参考指南》。)在此过程中,DBA 在当前二进制日志“MYSQLSVR-bin.000009”中将 Drop Table 命令标识为日志位置“805”。
从还原的二进制日志确定位置后,将使用周三的差异备份执行 PIT 还原。
1 |
选择周三晚上执行差异备份:在创建还原任务 — 选择保存集页上,DBA 再次选择与周三差异备份相对应的备份保存集。 |
重要信息: DBA 不必还原周一和周二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,再回到周日的完整备份;也就是说,周三晚上的备份包括周一、周二和周三生成的所有二进制日志 — 再回到周日的完整备份。 |
2 |
在与还原相关的“选项”选项卡上设置特定选项:DBA 设置以下选项: |
• |
执行 PIT 恢复:选择此选项以启用此形式的还原和所有相关选项。 |
• |
还原和应用二进制日志(在已知时间或位置时使用):选择此选项以指示插件使用备份中包含的二进制日志。 |
• |
包含当前二进制日志:选择此选项以指示 NetVault Backup 使用当前的二进制日志应用周三晚上差异备份之后发生的所有数据库事务。此步骤恢复在周三晚上完成差异备份与发出 Drop Table 命令之间发生的所有事务。 |
• |
在错误/不良 SQL 语句之前启用恢复:选择此选项,并将停止位置设置为“804”,即当前二进制日志中在使用 mysqlbinlog 标识的 Drop Table 命令位置之前存在的位置。将包含停止位置的二进制日志设置为其他文件,并在文本框中输入当前二进制文件的名称,例如“MYSQLSVR-bin.000009”。 |
• |
在错误/不良 SQL 语句之后启用恢复:选择此选项,并将开始位置设置为“806”,即当前二进制日志中在使用 mysqlbinlog 标识的 Drop Table 命令位置之后存在的位置。将包含停止位置的二进制日志设置为其他文件,并在文本框中输入当前二进制文件的名称,例如“MYSQLSVR-bin.000009”。最后,由于恢复要一直执行到当前二进制日志结束,因此为停止位置选择了无选项。 |
重要信息: 如果您的网站使用 MIXED 二进制日志记录格式,并且所有数据库用户和程序都遵循最佳做法,确保修改的表位于 USE 选定的数据库中,并且不会发出跨数据库更新,则本主题不适用于您的网站。(有关详细信息,请参阅 使用 MIXED 二进制日志记录格式。)您可以运行 PIT 还原任务,并将二进制日志重播至任务中所选数据库的指定点。 |
如前所述,如果环境中的用户和程序修改了未由 USE 选择的数据库中的表,并且他们发出跨数据库更新,则在运行 PIT 还原任务时,可能无法将事务重播至指定时间。Quest建议所有数据库用户和程序确保修改后的表位于 USE 选定的数据库中,并且不会发出跨数据库更新。如果本指南不适合您的环境,Quest 建议您不要使用 MIXED 二进制日志记录格式。
重要信息: 以下过程使用不带“--database”选项的 mysqlbinlog。因此,将应用二进制日志的所有内容,并且可能会修改所有数据库。考虑将此过程应用于备用 MySQL Server,并从备用 MySQL Server 中提取适用的数据。如果将以下过程应用到生产 MySQL Server,则所有数据库都将回滚到指定的点。不要在生产环境中应用此过程,除非您计划将所有 MySQL Server 数据库回滚到指定点。 |
1 |
在导航窗格中,单击创建还原任务。 |
2 |
3 |
5 |
6 |
7 |
8 |
要从 mysqlbinlog 命令提示符处手动应用二进制日志,请键入: |
要从故障或数据损坏中恢复,在设置与选定要还原的数据相关的任务以及选项选项卡上的可用选项时,必须进行各种设置。
1 |
2 |
© ALL RIGHTS RESERVED. Feedback 利用規約 プライバシー Cookie Preference Center