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

返回本页常规视图.

容错组

容错组允许您为物理群集布局配置企业模式数据库。共享您的群集拓扑让您可以使用 Terrace 路由来减少大型查询的缓冲区要求。它还有助于最大限度地降低环境中固有的相关故障所带来的风险,这些故障通常由共享资源引起。

Vertica 将在大型群集排列中的 控制节点(运行 spread 的服务器)周围自动创建容错组,将共享控制节点的节点放在同一容错组中。自动容错组和用户定义的容错组不包括暂时节点,因为类似的节点不容纳数据。

如果要执行以下操作,请考虑定义您自己的特定于群集物理布局的容错组:

  • 使用 Terrace 路由来减少大型查询的缓冲区要求。

  • 降低相关故障的风险。例如,通过定义机架布局,Vertica 对故障的容忍度更高。

  • 影响控制节点在群集中的放置。

Vertica 支持使用具有不同形状和大小的复杂、层次结构容错组。数据库平台提供容错组脚本(DDL 生成器)、SQL 语句、系统表和其他监控工具。

有关包含群集拓扑示例的容错组的概述,请参阅使用容错组的高可用性

1 - 关于容错组脚本

为了帮助您定义群集的容错组,Vertica 在 /opt/vertica/scripts 目录中提供了一个名为 fault_group_ddl_generator.py 的脚本。您需要利用此脚本生成的 SQL 语句来创建容错组。

fault_group_ddl_generator.py 脚本不会为您创建容错组,但您可以将输出复制到文件中。然后,当您运行帮助脚本时,可以使用 \ivsql–f 命令来将群集拓扑传递到 Vertica。

容错组脚本采用以下实参:

  • 数据库名称

  • 容错组输入文件名

例如:

$ python /opt/vertica/scripts/fault_group_ddl_generator.py VMartdb fault_grp_input.out

另请参阅

2 - 创建容错组输入文件

使用文本编辑器,为目标群集创建容错组输入文件。

以下示例显示如何为具有 8 个机架且每个机架上有 8 个节点的群集创建容错组输入文件,群集中总共有 64 个节点。

  1. 在文件的第一行,列出父(顶级)容错组,以空格分隔。

    rack1 rack2 rack3 rack4 rack5 rack6 rack7 rack8
    
  2. 在随后的行中,列出父容错组,后跟等号 (=)。在等号之后,列出以空格分隔的节点或容错组。

    <parent> = <child_1> <child_2> <child_n...>
    

    如:

    rack1 = v_vmart_node0001 v_vmart_node0002 v_vmart_node0003 v_vmart_node0004
    rack2 = v_vmart_node0005 v_vmart_node0006 v_vmart_node0007 v_vmart_node0008
    rack3 = v_vmart_node0009 v_vmart_node0010 v_vmart_node0011 v_vmart_node0012
    rack4 = v_vmart_node0013 v_vmart_node0014 v_vmart_node0015 v_vmart_node0016
    rack5 = v_vmart_node0017 v_vmart_node0018 v_vmart_node0019 v_vmart_node0020
    rack6 = v_vmart_node0021 v_vmart_node0022 v_vmart_node0023 v_vmart_node0024
    rack7 = v_vmart_node0025 v_vmart_node0026 v_vmart_node0027 v_vmart_node0028
    rack8 = v_vmart_node0029 v_vmart_node0030 v_vmart_node0031 v_vmart_node0032
    

    在父容错组的第一行之后,编写容错组描述的顺序并不重要。您在此文件中定义的所有容错组都必须引用父容错组。您可以直接指示父组,也可以通过指定作为父容错组子级的容错组的子级来指示。

    如:

    rack1 rack2 rack3 rack4 rack5 rack6 rack7 rack8
    rack1 = v_vmart_node0001 v_vmart_node0002 v_vmart_node0003 v_vmart_node0004
    rack2 = v_vmart_node0005 v_vmart_node0006 v_vmart_node0007 v_vmart_node0008
    rack3 = v_vmart_node0009 v_vmart_node0010 v_vmart_node0011 v_vmart_node0012
    rack4 = v_vmart_node0013 v_vmart_node0014 v_vmart_node0015 v_vmart_node0016
    rack5 = v_vmart_node0017 v_vmart_node0018 v_vmart_node0019 v_vmart_node0020
    rack6 = v_vmart_node0021 v_vmart_node0022 v_vmart_node0023 v_vmart_node0024
    rack7 = v_vmart_node0025 v_vmart_node0026 v_vmart_node0027 v_vmart_node0028
    rack8 = v_vmart_node0029 v_vmart_node0030 v_vmart_node0031 v_vmart_node0032
    

创建容错组输入文件后,即可运行 fault_group_ddl_generator.py。您需要利用此脚本生成的 DDL 语句来在 Vertica 中创建容错组。

如果您的 Vertica 数据库共置于一个 Hadoop 群集上,并且该群集使用多个机架,您可以使用容错组来提高性能。请参阅配置机架位置

另请参阅

创建容错组

3 - 创建容错组

在定义容错组时,Vertica 会将数据段分发到整个群集中。这使得群集能够了解群集拓扑,以便它可以容忍环境中固有的相关故障,例如机架故障。有关概览,请参阅容错组的高可用性

先决条件

要定义容错组,您必须具有:

运行容错组脚本

  1. 以数据库管理员身份运行 fault_group_ddl_generator.py 脚本:

    python /opt/vertica/scripts/fault_group_ddl_generator.py databasename fault-group-inputfile > sql‑filename
    

    例如,以下命令将 Python 脚本输出写入 SQL 文件 fault_group_ddl.sql 中。

    $ python /opt/vertica/scripts/fault_group_ddl_generator.py
        VMart fault_groups_VMart.out > fault_group_ddl.sql
    

    在脚本返回后,可以运行 SQL 文件,而不是单独运行多个 DDL 语句。

  2. 使用 vsql,运行 fault_group_ddl.sql 中的 DDL 语句或使用 vsql 执行该文件中的命令。

    => \i fault_group_ddl.sql
    
  3. 如果启用了大型群集,请使用 REALIGN_CONTROL_NODES 重新对齐控制节点。否则,跳过此步骤。

    => SELECT REALIGN_CONTROL_NODES();
    
  4. 通过调用 RELOAD_SPREAD 将群集更改保存到 Spread 配置文件:

    => SELECT RELOAD_SPREAD(true);
    
  5. 使用 管理工具 (Administration Tools) 重新启动数据库。

  6. 通过调用 REBALANCE_CLUSTER 将更改保存到群集的数据布局:

    => SELECT REBALANCE_CLUSTER();
    

另请参阅

4 - 监控容错组

您可以通过查询 Vertica 系统表或登录到管理控制台界面监控容错组。

使用系统表监控容错组

使用以下系统表查看与容错组和群集缺陷有关的信息,例如在不关闭数据库的情况下群集无法丢失的节点:

  • V_CATALOG.FAULT_GROUPS:查看群集中所有容错组的层次结构。

  • V_CATALOG.CLUSTER_LAYOUT:观察参与数据业务的节点的排列以及影响这些节点的容错组。临时节点不显示在群集布局环中,因为它们没有任何数据。

使用管理控制台监控容错组

MC 管理员可以通过以下步骤监控和突出显示感兴趣的容错组:

  1. 单击要监控的正在运行的数据库,然后在任务栏中单击管理 (Manage)

  2. 打开容错组视图 (Fault Group View) 菜单,然后选择要查看的容错组。

  3. (可选)隐藏不在选定容错组中的节点以关注感兴趣的容错组。

分配给容错组的节点每个都在节点图标左上角有一个彩色气泡。每个容错组都有一个独特的颜色。如果容错组的数量超过可用的颜色数量,MC 将循环使用先前使用的颜色。

由于 Vertica 支持不同形状和大小的复杂分层容错组,因此 MC 将多个容错组的参与显示为一堆不同颜色的气泡。气泡越高,代表容错组的层次越低,这意味着气泡更接近父容错组(而不是子容错组或孙容错组)。

有关容错组层次结构的详细信息,请参阅容错组的高可用性

5 - 删除容错组

从群集中移除容错组时,请注意删除操作会移除指定的容错组及其子容错组。Vertica 将所有节点都放在删除的容错组的父代下面。要查看群集中的当前容错组层次结构,请查询 FAULT_GROUPS 系统表。

删除容错组

使用 DROP FAULT GROUP 语句从群集中移除容错组。以下示例显示了如何删除 group2 容错组:

=> DROP FAULT GROUP group2;
DROP FAULT GROUP

删除所有的容错组

使用 ALTER DATABASE 语句从指定数据库群集中删除所有容错组以及任何子容错组。

以下命令将从当前数据库中删除所有容错组。

=> ALTER DATABASE DEFAULT DROP ALL FAULT GROUP;
ALTER DATABASE

将节点重新添加到容错组中

要将节点重新添加到容错组中,必须手动将其重新分配到新容错组或现有容错组。要执行此操作,请使用 CREATE FAULT GROUPALTER FAULT GROUP..ADD NODE 语句。

另请参阅