存档分区

可以使用 Vertica 函数 MOVE_PARTITIONS_TO_TABLE 在表之间移动分区。此函数对于在下列过程中存档旧分区非常有用:

  1. 标识要存档的分区,并使用 MOVE_PARTITIONS_TO_TABLE 将其移动到临时暂存表

  2. 备份临时表

  3. 删除临时表

可以随时还原已存档的分区

将分区移动到临时表

存档历史数据的方法是标识要从表中移除的分区。然后,将每个分区(或分区组)移动到临时表。

在调用 MOVE_PARTITIONS_TO_TABLE 之前:

  • 刷新所有过时投影。

以下建议适用于临时表:

  • 为了方便备份过程,为每个存档操作的临时表创建唯一架构。

  • 为临时表指定新名称。这可确保它们不包含先前移动操作中的分区。


    如果该表不存在,Vertica 将根据源表的定义,通过调用 CREATE TABLE 包含 LIKEINCLUDING 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 配置文件通过对象级备份来存档它。有关详细信息,请参阅备份和还原数据库

删除临时表

在备份完成后,可以按删除表中所述删除临时表。

还原已存档分区

您可以还原之前移至中间表、存档为对象级别备份后删除的分区。

还原已存档分区的步骤如下:

  1. 还原在移动一个或多个待存档分区时所保存的中间表的备份(请参阅存档分区)。

  2. 将还原后的分区从中间表移至原始表。

  3. 删除中间表。