还原单个对象

您可以使用 vbr 从完整或对象级别备份中还原单个表和架构:使用 ‑‑restore-objects 限定 restore 任务,并将要还原的对象指定为以逗号分隔的列表:

$ vbr --task=restore --config-file=filename --restore-objects='objectname[,...]' [--archive=archive-id]

具有以下要求和限制:

  • 数据库必须正在运行,且节点必须处于 UP 状态。

  • 表必须包含其架构名称。

  • 不要在 ‑‑restore-objects 列表的逗号分隔符之前或之后嵌入空格;否则,vbr 将空格解释为对象名称的一部分。

  • HDFS 存储位置不支持对象级别还原。要还原 HDFS 存储位置,必须执行完整还原。

如果架构具有磁盘配额且还原表将超过配额,则该操作将会失败。

默认情况下,‑‑restore-objects 将从最近的备份中还原指定的对象。您可以使用 ‑‑archive 参数从较早的备份中还原。

以下示例使用 db.ini 配置文件,该文件包含数据库管理员的密码:

> vbr --task restore --config-file=db.ini --restore-objects=salesschema,public.sales_table,public.customer_info
Preparing...
Found Database port:  5433
Copying...
[==================================================] 100%
All child processes terminated successfully.
All extract object child processes terminated successfully.
Copying...
[==================================================] 100%
All child processes terminated successfully.
restore done!

对象相关性

当您还原某个对象时,Vertica 不会自动还原任何依赖对象。例如,如果您还原一个包含视图的架构,则 Vertica 不会自动还原这些视图的表。有一个例外:如果数据库表通过外键链接,则必须将其一起还原,但配置文件 vbr 中的 drop_foreign_constraints 设置为 true 时则除外。

重复对象

通过配置 objectRestoreMode,您可以指定还原操作如何处理重复对象。默认情况下,它已设置为 createOrReplace。因此,如果存在重复对象,还原操作将使用存档版本覆盖它。

Eon 模式的注意事项

将对象还原到 Eon 模式数据库时,可能会将不需要的文件留在云存储中。这些文件并不会影响数据库的性能或数据的完整性。但是,它们可能会产生额外的云存储费用。要移除这些文件,请重新启动数据库并使用实参 true 调用 CLEAN_COMMUNAL_STORAGE

另请参阅