存档分区
可以使用 Vertica 函数
MOVE_PARTITIONS_TO_TABLE
在表之间移动分区。此函数对于在下列过程中存档旧分区非常有用:
-
标识要存档的分区,并使用
MOVE_PARTITIONS_TO_TABLE
将其移动到临时暂存表。
可以随时还原已存档的分区。
将分区移动到临时表
存档历史数据的方法是标识要从表中移除的分区。然后,将每个分区(或分区组)移动到临时表。
在调用 MOVE_PARTITIONS_TO_TABLE
之前:
- 刷新所有过时投影。
以下建议适用于临时表:
-
为了方便备份过程,为每个存档操作的临时表创建唯一架构。
-
为临时表指定新名称。这可确保它们不包含先前移动操作中的分区。
如果该表不存在,Vertica 将根据源表的定义,通过调用CREATE TABLE
包含LIKE
和INCLUDING PROJECTIONS
子句来创建一个表。该新表会从源表中继承所有权。有关详细信息,请参阅复制表。 -
使用能够让其他用户轻松标识分区内容的临时名称。例如,如果表按日期分区,则使用指定日期或日期范围的名称。
在以下示例中,MOVE_PARTITIONS_TO_TABLE
指定将单个分区移动到临时表 partn_backup.tradfes_200801
。
=> SELECT MOVE_PARTITIONS_TO_TABLE (
'prod_trades',
'200801',
'200801',
'partn_backup.trades_200801');
MOVE_PARTITIONS_TO_TABLE
-------------------------------------------------
1 distinct partition values moved at epoch 15.
(1 row)
备份临时表。
在创建临时表后,可以使用
vbr
配置文件通过对象级备份来存档它。有关详细信息,请参阅备份和还原数据库。
重要
Vertica 建议在执行对象级备份之前先执行完整数据库备份,以防数据丢失。对象级备份只能还原为原始数据库。删除临时表
在备份完成后,可以按删除表中所述删除临时表。
还原已存档分区
您可以还原之前移至中间表、存档为对象级别备份后删除的分区。
注意
还原已存档分区要求原始表定义在分区被存档和删除后保持不变。如果表定义发生更改,则可以使用 INSERT...SELECT 语句还原已存档分区,此处不做介绍。还原已存档分区的步骤如下:
-
还原在移动一个或多个待存档分区时所保存的中间表的备份(请参阅存档分区)。
-
将还原后的分区从中间表移至原始表。
-
删除中间表。