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

返回本页常规视图.

在节点之间重新平衡数据

当您添加或移除节点时,Vertica 可以重新平衡您的数据库。作为超级用户,您可以使用管理工具 (Administration Tools)SQL 函数管理控制台手动触发重新平衡。

重新平衡操作可能需要一些时间,具体取决于群集大小、投影数量以及投影中包含的数据量。您不得中断此过程,而是允许其正常完成。如果必须取消此操作,请调用 CANCEL_REBALANCE_CLUSTER 函数。

为什么要重新平衡?

在执行以下操作之一后,重新平衡很有用甚至是必要的:

  • 通过添加或移除节点来更改群集的大小。

  • 在准备从群集移除一个或多个节点时,将其标记为临时节点。

  • 更改弹性群集的比例因子,该比例因子可确定用于跨数据库存储投影的存储容器的数目。

  • 设置控制节点大小或重新对齐大型群集布局上的控制节点。

  • 在初始 Vertica 群集配置中指定 120 个以上的节点。

  • 通过添加或移除节点来修改容错组

常规重新平衡任务

当您重新平衡数据库群集时,Vertica 对所有投影(无论是分段的还是未分段的)执行以下任务:

  • 基于下列内容分配数据:

  • 忽略投影定义中特定于节点的分布规范。在重新平衡节点时始终会将数据分布在所有节点上。

  • 重新平衡完成后,将 Ancient History Mark 设置为允许的最大时期(现在)。

Vertica 对于分段和未分段的投影采用不同的重新平衡方式,如下所述。

重新平衡分段投影

对于每个分段投影,Vertica 执行以下任务:

  1. 复制和重命名投影同伴并将它们均匀地分布在所有节点上。重命名的投影共享同一投影基本名。

  2. 刷新为新的投影。

  3. 删除原始投影。

重新平衡未分段的投影

对于每个未分段的投影,Vertica 执行以下任务:

如果添加节点:

  • 会在节点上创建投影同伴。

  • 会将新投影映射到它们在数据库编录中的共享名称。

如果删除节点:会从节点中删除其投影同伴。

K-safety 和重新平衡

在重新平衡完成之前,Vertica 会使用现有 K-safe 值进行操作。重新平衡完成后,Vertica 将使用在重新平衡操作期间指定的 K-safe 值进行操作。新的 K-safe 值必须等于或高于当前的 K-safety。Vertica 不支持 K-safety 降级,如果您尝试减小其当前值,则会返回一条警告。有关详细信息,请参阅降低 K‑Safety 以启用节点移除

重新平衡故障和投影

如果在重新平衡数据库时发生故障,您可以再次执行重新平衡操作。解决故障原因后,重新平衡操作会从发生故障之处继续进行。但是,数据重新平衡故障会导致投影变为过时。

要查找过期的投影,请查询系统表 PROJECTIONS,如下所示:

=> SELECT projection_name, anchor_table_name, is_up_to_date FROM projections
   WHERE is_up_to_date = false;

要移除过时的投影,请使用 DROP PROJECTION

临时表

节点重新平衡对临时表的投影没有影响。

有关重新平衡的详细信息

请参阅知识库文章:

1 - 使用管理工具 UI 重新平衡数据

要重新平衡数据库中的数据:

  1. 打开管理工具。(请参阅使用管理工具。)

  2. 主菜单 (Main Menu) 上,选择查看数据库群集状态 (View Database Cluster State) 以验证数据库是否正在运行。如果未运行,请将其启动。

  3. 主菜单 (Main Menu) 中,选择高级菜单 (Advanced Menu),然后单击确定 (OK)

  4. 高级菜单 (Advanced Menu) 中,选择群集管理 (Cluster Management),然后单击确定 (OK)

  5. 群集管理 (Cluster Management) 菜单中,选择重新平衡数据 (Re-balance Data),然后单击确定 (OK)

  6. 选择要重新平衡的数据库,然后选择确定 (OK)

  7. 输入 Database Designer 输出目录(例如 /tmp)),然后单击确定 (OK)

  8. 接受建议的 K-safety 值或提供新值。有效值为 0 到 2。

  9. 查看消息,然后单击继续 (Proceed) 开始重新平衡数据。

    Database Designer 将修改现有投影,以在具有您提供的 K-safety 的所有数据库节点之间重新平衡数据。此外,还会生成一个用于重新平衡数据的脚本,该脚本位于指定的路径中(例如 /tmp/extend_catalog_rebalance.sql),您可在以后手动运行它。

    当重新平衡操作完成时,终端窗口会通知您。

  10. Enter 返回管理工具。

2 - 使用 SQL 函数重新平衡数据

Vertica 具有三个用于启动和停止群集重新平衡的 SQL 函数。您可以从在非高峰时段运行的脚本调用这些函数,而不是通过管理工具手动触发重新平衡。