从完整备份中还原数据库
您可以将完整的数据库备份还原到已备份的数据库,或者具有相同架构的备用群集。例如,若要设置测试群集来调查生产群集中的问题,则需要还原到备用群集。
要还原完整数据库备份,必须验证:
-
数据库为 DOWN 状态。数据库运行期间不能还原完整备份。
-
所有备份主机可供使用。
-
备份目录中存在要还原数据的备份。
-
备份要还原到的群集需具有:
-
与创建备份所用的群集具有相同的节点数(Enterprise 模式),或至少与主子群集具有相同的节点数(Eon 模式)
-
与创建备份使用的架构相同(Enterprise 模式或 Eon 模式)
-
相同的节点名称
-
-
目标数据库必须存在于要将数据还原到的群集。
-
数据库可以完全为空,不含任何数据或架构。
-
数据库名称必须与备份中的名称匹配
-
数据库中的所有节点名称均必须与配置文件中的节点名称匹配。
-
-
执行还原操作的用户是数据库管理员。
-
如果您正在还原 Eon 模式数据库,您可能已满足Eon 模式数据库的要求。
您只能使用完整数据库备份还原完整数据库。如果保存了多个备份存档,您可以从最新备份或特定存档进行还原。
从完整数据库备份中还原时,会将每个备份的 OID 注入到完整数据库备份的还原编录中。该编录还接收所有存档。此外,OID 生成器以及当前时期都会设置为当前时期。
此外,您可以将完整备份还原到与您备份的数据库不同的数据库。请参阅将数据库还原到备用群集。
重要
还原 Eon 模式数据库时,即使您还原到新数据库,公共存储也会保留在原始位置。
请勿重新启动原始数据库。使用相同的公共存储运行两个数据库可能会导致数据损坏。
还原最近备份
通常,当节点或群集为 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。