从完整备份中还原数据库

您可以将完整的数据库备份还原到已备份的数据库,或者具有相同架构的备用群集。例如,若要设置测试群集来调查生产群集中的问题,则需要还原到备用群集。

要还原完整数据库备份,必须验证:

  • 数据库为 DOWN 状态。数据库运行期间不能还原完整备份。

  • 所有备份主机可供使用。

  • 备份目录中存在要还原数据的备份。

  • 备份要还原到的群集需具有:

    • 与创建备份所用的群集具有相同的节点数(Enterprise 模式),或至少与主子群集具有相同的节点数(Eon 模式)

    • 与创建备份使用的架构相同(Enterprise 模式或 Eon 模式)

    • 相同的节点名称

  • 目标数据库必须存在于要将数据还原到的群集。

    • 数据库可以完全为空,不含任何数据或架构。

    • 数据库名称必须与备份中的名称匹配

    • 数据库中的所有节点名称均必须与配置文件中的节点名称匹配。

  • 执行还原操作的用户是数据库管理员。

  • 如果您正在还原 Eon 模式数据库,您可能已满足Eon 模式数据库的要求

您只能使用完整数据库备份还原完整数据库。如果保存了多个备份存档,您可以从最新备份或特定存档进行还原。

从完整数据库备份中还原时,会将每个备份的 OID 注入到完整数据库备份的还原编录中。该编录还接收所有存档。此外,OID 生成器以及当前时期都会设置为当前时期。

此外,您可以将完整备份还原到与您备份的数据库不同的数据库。请参阅将数据库还原到备用群集

还原最近备份

通常,当节点或群集为 DOWN 状态时,您希望将群集返回到其最近状态。此操作需要还原完整的数据库备份。您可以通过在配置文件中标识名称,从存档还原任何完整数据库备份。

要从最近的备份中还原,请将 vbr 还原任务与配置文件一起使用。如果您的 密码配置文件不包含数据库超级用户密码,vbr 会提示您输入该密码。

以下示例显示如何使用 db.ini 配置文件进行还原:

> vbr --task restore --config-file db.ini
Copying...
1871652633 out of 1871652633, 100%
All child processes terminated successfully.
restore done!

还原存档

如果保存了多个备份,您可以指定要还原的特定存档。要列出已有存档,以便从中选择一个存档进行还原,请使用 vbr \--listbackup 任务并为其指定特定配置文件。请参阅查看备份

要从存档中还原,请将 --archive 参数添加到命令行。该值是目录名称的 * date_timestamp * 后缀,用于识别要还原的存档。例如:

$ vbr --task restore --config-file fullbak.ini --archive=20121111_205841

--archive 参数识别了在 11-11-2012 (_archive20121111) 这一天的 205841 (20:58:41) 创建的存档。您只需指定 _archive 后缀,因为配置文件确定了子目录的备份名称,并且 OID 标识符表明了备份是存档。

在 Eon 模式下还原失败

当还原操作失败时,vbr 可能会在公共存储位置留下额外的文件。如果您使用云中的公共存储,这些额外的文件将耗费您的成本。要移除它们,请重新启动数据库并使用实参 true 调用 CLEAN_COMMUNAL_STORAGE