数据库管理员已创建了备份策略,在每个星期日晚上 11:00 执行完整备份,在星期一到星期六的晚上 11:00 执行差异备份。由于数据库管理员会执行差异备份,因此每次差异备份后会保留此次备份的二进制日志 — 这会使备份时间更长,但也使整体还原速度更快。
在星期四上午 9:00,数据库管理员发现用户在订单表中遇到“未找到表”错误。数据库管理员随后发现该表不再存在因为开发者已在星期四的上午早些时候即数据库管理员到达工作之前无意间将表删除。
数据库管理员决定执行完全恢复到最后差异备份的时间点 — 即星期三晚上执行的备份。
1 |
选择星期日晚上执行的完整备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期日的完整备份相对应的备份保存集。 |
2 |
将所有还原相关选项保留默认值:未使用这些选项。 |
1 |
选择星期三晚上执行的差异备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期三的差异备份相对应的备份保存集。 |
2 |
3 |
重要信息: 数据库管理员不必还原星期一和星期二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,返回到星期日晚上的完整备份;即星期三晚上的备份包含在星期一、星期二和星期三生成的所有二进制日志。 |
在以下示例中,一份完整备份和差异备份方案已就位,数据库管理员希望将数据恢复到特定时间。
在星期四上午 9:00,数据库管理员发现用户在订单表中遇到“未找到表”错误。数据库管理员随后发现该表不再存在,因为开发者已在星期三晚上 8:00 无意间将其删除。
数据库管理员必须执行恢复,以便将数据库刚好还原至星期三晚上 8:00 开发者删除表之前的时间。因此,将执行以下阶段:
1 |
选择星期日晚上执行的完整备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期日的完整备份相对应的备份保存集。 |
2 |
将所有还原相关选项保留默认值:未使用这些选项。 |
1 |
选择星期三晚上执行的差异备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期三的差异备份相对应的备份保存集。 |
重要信息: 数据库管理员不必还原星期一和星期二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,返回到星期日晚上的完整备份;即星期三晚上的备份包含在星期一、星期二和星期三生成的所有二进制日志。 |
2 |
在还原相关的“选项”选项卡上设置特定选项:数据库管理员设置以下选项: |
• |
执行 PIT 恢复:选择以指定 PIT 恢复并启用所有关联选项。 |
• |
还原并应用二进制日志(在时间或位置已知时使用):选择以指定在要使用的备份中包含的二进制日志。 |
• |
基于时间的 PIT:选择为类型。 |
• |
3 |
在星期四上午 9:00,数据库管理员发现用户在订单表中遇到“未找到表”错误。数据库管理员随后发现该表不再存在,因为开发者已在星期三晚上 8:00 无意间将其删除。
数据库管理员决定恢复到正好在晚上 8:00 发出“删除表”命令之前的时间。数据库管理员还希望恢复命令表删除之后对剩余表发生的事务,直至备份的二进制日志的末尾。此决定确保除了恢复删除的表外还尽可能多地恢复事务。因此,将执行以下阶段:
1 |
选择星期日晚上执行的完整备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期日的完整备份相对应的备份保存集。 |
2 |
将所有还原相关选项保留默认值:未使用这些选项。 |
1 |
选择星期三晚上执行的差异备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期三的差异备份相对应的备份保存集。 |
重要信息: 数据库管理员不必还原星期一和星期二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,返回到星期日晚上的完整备份;即星期三晚上的备份包含在星期一、星期二和星期三生成的所有二进制日志。 |
2 |
在还原相关的“选项”选项卡上设置特定选项:数据库管理员设置以下选项: |
• |
执行 PIT 恢复:选择以指定 PIT 恢复并启用所有关联选项。 |
• |
还原并应用二进制日志(在时间或位置已知时使用):选择以指定在要使用的备份中包含的二进制日志。 |
• |
基于时间的 PIT:选择为类型。 |
• |
• |
启用错误/问题 SQL 语句之后的恢复:选定以恢复在订单表删除之后发生的事务,并在开始日期/时间中输入一个较晚的时间和日期。最后,因为要将恢复执行到还原的二进制日志的末尾,因此为停止日期/时间选择无选项。 |
3 |
在星期四上午 9:00,数据库管理员发现用户在订单表中遇到“未找到表”错误。数据库管理员随后发现该表不再存在,因为开发者已在星期四早晨 6:00 无意间将其删除。
数据库管理员必须执行恢复,以便将数据库刚好还原至星期四早晨 6:00 开发者删除表之前的时间。
1 |
选择星期日晚上执行的完整备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期日的完整备份相对应的备份保存集。 |
2 |
将所有还原相关选项保留默认值:未使用这些选项。 |
1 |
选择星期三晚上执行的差异备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期三的差异备份相对应的备份保存集。 |
重要信息: 数据库管理员不必还原星期一和星期二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,返回到星期日晚上的完整备份;即星期三晚上的备份包含在星期一、星期二和星期三生成的所有二进制日志。 |
2 |
在还原相关的“选项”选项卡上设置特定选项:数据库管理员设置以下选项: |
• |
执行 PIT 恢复:选择以指定 PIT 恢复并启用所有关联选项。 |
• |
还原并应用二进制日志(在时间或位置已知时使用):选择以指明在要使用的备份中包含的二进制日志。 |
• |
包含当前二进制日志:选定以使用当前二进制日志,以便应用在星期三完成备份的时间与发出“删除表”命令的时间之间发生的条目。 |
• |
基于时间的 PIT:选择为类型。 |
• |
3 |
在星期四上午 9:00,数据库管理员发现用户在订单表中遇到“未找到表”错误。数据库管理员随后发现该表不再存在,因为开发者已在星期四早晨 6:00 无意间将其删除。
数据库管理员决定恢复到正好在发出“删除表”命令之前的时间。数据库管理员还希望恢复在删除“订单”表之后对剩余表发生的事务,直到当前二进制日志的末尾。此决定确保除了恢复删除的表外还尽可能多地恢复事务。因此,将执行以下阶段:
1 |
选择星期日晚上执行的完整备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期日的完整备份相对应的备份保存集。 |
2 |
将所有还原相关选项保留默认值:未使用这些选项。 |
1 |
选择星期三晚上执行的差异备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期三的差异备份相对应的备份保存集。 |
重要信息: 数据库管理员不必还原星期一和星期二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,返回到星期日晚上的完整备份;即星期三晚上的备份包含在星期一、星期二和星期三生成的所有二进制日志。 |
2 |
在还原相关的“选项”选项卡上设置特定选项:数据库管理员设置以下选项: |
• |
执行 PIT 恢复:选择以指定 PIT 恢复并启用所有关联选项。 |
• |
还原并应用二进制日志(在时间或位置已知时使用):选择以指明在要使用的备份中包含的二进制日志。 |
• |
包含当前二进制日志:选定以使用当前二进制日志,以便应用在星期三完成备份的时间与发出“删除表”命令的时间之间发生的条目。 |
• |
基于时间的 PIT:选择为类型。 |
• |
• |
启用错误/问题 SQL 语句之后的恢复:选定以恢复在订单表删除之后发生的事务,并在开始日期/时间中输入一个较晚的时间和日期。最后,因为要将恢复执行到当前二进制日志的末尾,因此为停止日期/时间选择无选项。 |
3 |
在以下示例中,一份完整备份和增量备份方案已就位,数据库管理员希望将数据恢复到特定时间,但是使用了更明确的方法定义时间。此进程通过使用在 MySQL 二进制日志中存在的“位置值”完成。
在星期四上午 9:00,数据库管理员发现用户在订单表中遇到“未找到表”错误。数据库管理员随后发现该表不再存在,因为开发者已在星期三晚上 8:00 无意间将其删除。
数据库管理员决定恢复到正好在发出“删除表”命令之前的时间。此外,数据库管理员需要更精确的恢复,因此他决定使用基于位置的恢复。以下阶段说明了此进程:
1 |
选择星期日晚上执行的完整备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期日的完整备份相对应的备份保存集。 |
2 |
将所有还原相关选项保留默认值:未使用这些选项。 |
在此阶段,仅在星期三晚上的差异备份中记录的二进制日志还原到临时位置。此进程让数据库管理员可以找到日志中标记了订单表删除时间的特定位置。
1 |
选择星期三晚上执行的差异备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期三的差异备份相对应的备份保存集。 |
2 |
在还原相关的“选项”选项卡上设置特定选项:数据库管理员设置以下选项: |
• |
执行 PIT 恢复:选定以启用此形式的还原和所有关联选项。 |
• |
将日志还原到临时目录以确定时间或位置:选定以仅还原星期三晚上差异备份中包含的二进制日志。 |
• |
对还原的二进制日志使用 mysqlbinlog 实用程序:此步骤在 NetVault Backup 外执行,用来确定数据库管理员不想还原的“删除表”命令的位置。(有关此实用程序和进程的信息,请参阅《MySQL 参考指南》。)在此进程中,数据库管理员确定了“删除表”命令在“MYSQLSVR-bin.000009”二进制日志中的位置为“805”。该二进制日志已还原到 MySQL 服务器上的临时位置,并记录了两个值。
通过在还原的二进制日志中确定的位置,即可在之后使用星期三的差异备份执行 PIT 还原。
1 |
选择星期三晚上执行的差异备份:数据库管理员再次选择创建还原任务 — 选择保存集页面中与星期三的差异备份对应的备份保存集。 |
重要信息: 数据库管理员不必还原星期一和星期二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,返回到星期日晚上的完整备份;即星期三晚上的备份包含在星期一、星期二和星期三生成的所有二进制日志。 |
2 |
在还原相关的“选项”选项卡上设置特定选项:数据库管理员设置以下选项: |
• |
执行 PIT 恢复:选定以启用此形式的还原和所有关联选项。 |
• |
应用临时目录中的二进制日志:选定以将此过程的上一阶段中还原到临时位置的二进制日志作为目标。因为还原的二进制日志用于确定“删除表”命令所在的特定位置,因此选择此选项让插件使用相同的二进制日志。 |
• |
启用错误/问题 SQL 语句之前的恢复:选择此选项,并将停止位置设置为“804”,即二进制日志中存在于使用 mysqlbinlog 识别的“删除表”命令位置之前的位置。包含停止位置的二进制日志选项用于选择还原到临时目录的二进制日志“MYSQLSVR-bin.000009”。 |
3 |
在星期四上午 9:00,数据库管理员发现用户在订单表中遇到“未找到表”错误。数据库管理员随后发现该表不再存在,因为开发者已在星期三晚上 8:00 无意间将其删除。
数据库管理员决定恢复到正好在发出“删除表”命令之前的时间。数据库管理员还希望恢复在删除“订单”表之后对剩余表发生的事务,直到备份的二进制日志的末尾。此外,数据库管理员需要更精确的恢复,因此他决定使用基于位置的恢复。以下阶段说明了此进程:
1 |
选择星期日晚上执行的完整备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期日的完整备份相对应的备份保存集。 |
2 |
将所有还原相关选项保留默认值:未使用这些选项。 |
在此阶段,仅星期三晚上的增量备份中记录的二进制日志会还原到临时位置。此进程让数据库管理员可以找到日志中标记了订单表删除时间的特定位置。
1 |
选择星期三晚上执行的差异备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期三的差异备份相对应的备份保存集。 |
2 |
在还原相关的“选项”选项卡上设置特定选项:数据库管理员设置以下选项: |
• |
执行 PIT 恢复:选定以启用此形式的还原和所有关联选项。 |
• |
将日志还原到临时目录以确定时间或位置:选定以仅还原星期三晚上差异备份中包含的二进制日志。 |
• |
对还原的二进制日志使用 mysqlbinlog 实用程序:此步骤在 NetVault Backup 外执行,用来确定数据库管理员不想还原的“删除表”命令的位置。(有关此实用程序和进程的信息,请参阅《MySQL 参考指南》。)在此进程中,数据库管理员确定了“删除表”命令在“MYSQLSVR-bin.000009”二进制日志中的位置为“805”。该二进制日志已还原到 MySQL 服务器上的临时位置,并记录了两个值。
通过从还原的二进制日志中确定的位置,即可在之后使用星期三的增量备份执行 PIT 还原。
1 |
选择星期三晚上执行的差异备份:数据库管理员再次选择创建还原任务 — 选择保存集页面中与星期三的差异备份对应的备份保存集。 |
重要信息: 数据库管理员不必还原星期一和星期二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,返回到星期日晚上的完整备份;即星期三晚上的备份包含在星期一、星期二和星期三生成的所有二进制日志。 |
2 |
在还原相关的“选项”选项卡上设置特定选项:数据库管理员设置以下选项: |
• |
执行 PIT 恢复:选定以启用此形式的还原和所有关联选项。 |
• |
应用临时目录中的二进制日志:选定以将此过程的上一阶段中还原到临时位置的二进制日志作为目标。因为还原的二进制日志用于确定“删除表”命令所在的特定位置,因此选择此选项让插件使用相同的二进制日志。 |
• |
启用错误/问题 SQL 语句之前的恢复:选择此选项,并将停止位置设置为“804”,即二进制日志中存在于使用 mysqlbinlog 识别的“删除表”命令位置之前的位置。包含停止位置的二进制日志选项用于选择还原到临时目录的二进制日志“MYSQLSVR-bin.000009”。 |
• |
启用错误/问题 SQL 语句之后的恢复:选择此选项,并将开始位置设置为“806”,即二进制日志中存在于使用 mysqlbinlog 识别的“删除表”命令位置之后的位置。包含停止位置的二进制日志选项用于选择还原到临时目录的二进制日志“MYSQLSVR-bin.000009”。最后,因为要将恢复执行到指定的二进制日志的末尾,因此为停止位置选择无选项。 |
3 |
在星期四上午 9:00,数据库管理员发现用户在订单表中遇到“未找到表”错误。数据库管理员随后发现该表不再存在,因为开发者已在星期四早晨 6:00 无意间将其删除。
数据库管理员必须执行恢复,以便将数据库刚好还原至星期四早晨 6:00 开发者删除表之前的时间。此外,数据库管理员需要更精确的恢复,因此他决定使用基于位置的恢复。以下阶段说明了此进程:
1 |
选择星期日晚上执行的完整备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期日的完整备份相对应的备份保存集。 |
2 |
将所有还原相关选项保留默认值:未使用这些选项。 |
对当前二进制日志使用 mysqlbinlog 实用程序:此步骤在 NetVault Backup 外执行,用来确定数据库管理员不想还原的“删除表”命令的位置。(有关此实用程序和进程的信息,请参阅《MySQL 参考指南》。)在此进程中,数据库管理员确定了“删除表”命令在当前二进制日志“MYSQLSVR-bin.000009”中的位置为“805”。
通过从还原的二进制日志中确定的位置,即可在之后使用星期三的差异备份执行 PIT 还原。
1 |
选择星期三晚上执行的差异备份:数据库管理员再次选择创建还原任务 — 选择保存集页面中与星期三的差异备份对应的备份保存集。 |
重要信息: 数据库管理员不必还原星期一和星期二晚上的差异备份。通过选择执行差异备份,每晚的备份都是累积的,返回到星期日晚上的完整备份;即星期三晚上的备份包含在星期一、星期二和星期三生成的所有二进制日志。 |
2 |
在还原相关的“选项”选项卡上设置特定选项:数据库管理员设置以下选项: |
• |
执行 PIT 恢复:选定以启用此形式的还原和所有关联选项。 |
• |
还原并应用二进制日志(在时间或位置已知时使用):选择以告知插件使用备份中包含的二进制日志。 |
• |
包含当前二进制日志:选择以告知 NetVault Backup 使用当前二进制日志应用星期三晚上的差异备份之后发生的所有数据库事务。此步骤将恢复在星期三晚上完成差异备份的时间与发出“删除表”命令的时间之间发生的所有事务。 |
• |
启用错误/问题 SQL 语句之前的恢复:选择此选项,并将停止位置设置为“804”,即当前二进制日志中存在于使用 mysqlbinlog 识别的“删除表”命令位置之前的位置。将包含停止位置的二进制日志设置为其他文件,并在文本框中输入当前二进制文件的名称,例如“MYSQLSVR -bin.000009”。 |
在星期四上午 9:00,数据库管理员发现用户在订单表中遇到“未找到表”错误。数据库管理员随后发现该表不再存在,因为开发者已在星期四早晨 6:00 无意间将其删除。
数据库管理员决定恢复到正好在发出“删除表”命令之前的时间。数据库管理员还希望恢复在删除“订单”表之后对剩余表发生的事务,直到当前二进制日志的末尾。此外,数据库管理员需要更精确的恢复,因此他决定使用基于位置的恢复。以下阶段说明了此进程:
1 |
选择星期日晚上执行的完整备份:在创建还原任务 — 选择保存集页面上,数据库管理员会选择与星期日的完整备份相对应的备份保存集。 |
2 |
将所有还原相关选项保留默认值:未使用这些选项。 |
对当前二进制日志使用 mysqlbinlog 实用程序:此步骤在 NetVault Backup 外执行,用来确定数据库管理员不想还原的“删除表”命令的位置。(有关此实用程序和进程的信息,请参阅《MySQL 参考指南》。)在此进程中,数据库管理员确定了“删除表”命令在当前二进制日志“MYSQLSVR-bin.000009”中的位置为“805”。
通过从还原的二进制日志中确定的位置,即可在之后使用星期三的差异备份执行 PIT 还原。
1 |
选择星期三晚上执行的差异备份:数据库管理员再次选择创建还原任务 — 选择保存集页面中与星期三的差异备份对应的备份保存集。 |
2 |
在还原相关的“选项”选项卡上设置特定选项:数据库管理员设置以下选项: |
• |
执行 PIT 恢复:选定以启用此形式的还原和所有关联选项。 |
• |
还原并应用二进制日志(在时间或位置已知时使用):选择以告知插件使用备份中包含的二进制日志。 |
• |
包含当前二进制日志:选择以告知 NetVault Backup 使用当前二进制日志应用星期三晚上的差异备份之后发生的所有数据库事务。此步骤将恢复在星期三晚上完成差异备份的时间与发出“删除表”命令的时间之间发生的所有事务。 |
• |
启用错误/问题 SQL 语句之前的恢复:选择此选项,并将停止位置设置为“804”,即当前二进制日志中存在于使用 mysqlbinlog 识别的“删除表”命令位置之前的位置。将包含停止位置的二进制日志设置为其他文件,并在文本框中输入当前二进制文件的名称,例如“MYSQLSVR -bin.000009”。 |
• |
启用错误/问题 SQL 语句之后的恢复:选择此选项,并将开始位置设置为“806”,即当前二进制日志中存在于使用 mysqlbinlog 识别的“删除表”命令位置之后的位置。将包含停止位置的二进制日志设置为其他文件,并在文本框中输入当前二进制文件的名称,例如“MYSQLSVR -bin.000009”。最后,因为要将恢复执行到当前二进制日志的末尾,因此为停止位置选择无选项。 |
如前所述,如果您的环境中的用户和程序修改了未被 USE 选择的数据库中的表,并且它们发出交叉数据库更新,则在运行 PIT 还原任务时,可能不会将事务回放到指定时间。Quest 建议所有数据库用户和程序确保修改后的表处于 USE 选定的数据库中,并且不会发出交叉数据库更新。如果此准则不适合您的环境,Quest 建议您不要使用 MIXED 二进制日志记录格式。
重要信息: 以下过程使用不带“-database”选项的 mysqlbinlog。因此,将应用二进制日志的所有内容,并修改所有数据库。请考虑将此过程应用于备用 MySQL 服务器,并从备用 MySQL 服务器中提取适用的数据。如果将以下过程应用于生产 MySQL 服务器,所有数据库都将回滚到指定点。除非您计划将所有 MySQL Server 数据库回滚到指定点,否则请勿在生产环境中应用该过程。 |
1 |
在导航窗格中,单击创建还原任务。 |
2 |
3 |
5 |
6 |
7 |
8 |
要从 mysqlbinlog 命令提示符手动应用二进制日志,键入: |
要从故障或数据损坏中成功恢复,必须在设置有关选定数据的还原任务以及选项选项卡上的可用选项时,进行不同的设置。
1 |
2 |
© ALL RIGHTS RESERVED. 使用条款 隐私 Cookie Preference Center