还原单个对象
您可以使用 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。