这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

按表恢复

Vertica 支持按表执行节点恢复。与基于节点的恢复不同,按表恢复可使表在恢复期间可用,无需等待节点自身完全还原。您可以优先恢复最重要的表,确保它们立即可用。恢复后的表可支持所有 DDL 和 DML 操作。

为了提高恢复速度,Vertica 会并行恢复多个表。一次可以恢复的最大表数由 RECOVERY 资源池中的 MAXCONCURRENCY 参数控制。

节点完全恢复后,它会启用完整 Vertica 功能。

1 - 确定表恢复的优先级

可以指定 Vertica 恢复表时所采用的顺序。此功能可确保最关键的表尽快处于可用状态。若要指定表的恢复顺序,请分配一个整数优先级值。首先恢复优先级值较高的表。例如,优先级为 1000 的表在优先级值为 500 的表之前恢复。表优先级的最大值为 64 位整数。

如果没有指定优先级,或多个表具有相同的优先级,则 Vertica 将按 OID 顺序还原表。使用查询分配优先级的方式如下:

=> SELECT set_table_recover_priority('avro_basic', '1000');
      set_table_recover_priority
---------------------------------------
 Table recovery priority has been set.
(1 row)

可使用以下格式通过一个查询查看所分配的优先级: SELECT table_name,recover_priority FROM v_catalog.tables; 下一个示例显示了 Vmart 示例数据库中已确定优先级的表。这种情况下,恢复优先级最高的表将列在最前面 (DESC)。shipping_dimension 表具有最高优先级,将最先恢复。(本示例为了便于显示,使用了硬式换行。)

=> SELECT table_name AS Name, recover_priority from v_catalog.tables WHERE recover_priority > 1
   ORDER BY recover_priority DESC;
        Name         | recover_priority
---------------------+------------------
 shipping_dimension  |            60000
 warehouse_dimension |            50000
 employee_dimension  |            40000
 vendor_dimension    |            30000
 date_dimension      |            20000
 promotion_dimension |            10000
 iris2               |             9999
 product_dimension   |               10
 customer_dimension  |               10
(9 rows)

2 - 查看表恢复状态

通过查询 V_MONITOR.TABLE_RECOVERY_STATUS 表,查看关于恢复操作的常规信息。通过查询 V_MONITOR.TABLE_RECOVERIES 表,您还可以查看关于正在还原表的恢复操作状态的详细信息。