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

返回本页常规视图.

移除节点

永久删除节点虽然不像添加节点那样常见,但如果主机系统过时或过度配置,它将非常有用。

1 - 自动逐出运行状况不佳的节点

为了管理群集中节点的运行状况,Vertica 通过发送和接收检测信号来定期执行运行状况检查。在运行状况检查期间,群集中的每个节点都会验证对其编录、编录磁盘和本地存储位置('TEMP、DATA'、TEMP、DATA 和 DEPOT)的读写访问权限。验证后,节点发送检测信号。如果一个节点在五个间隔后未能发送检测信号(五次运行状况检查失败),则会将该节点从群集中逐出。

您可以使用 DatabaseHeartBeatInterval 参数控制相邻两次运行状况检查之间的时间。默认情况下,DatabaseHeartBeatInterval 设置为 120,即允许在无检测信号的情况下经过五个 120 秒的间隔。

逐出前允许的时间长度为:

TOT = DHBI * 5

其中,TOT 是在逐出之前所允许的无检测信号总时间(以秒为单位),DHBI 等于 DatabaseHeartBeatInterval 的值。

如果您设置的 DatabaseHeartBeatInterval 值过低,则可能导致节点在出现短暂的运行状况问题时被逐出。有时,此类过早逐出会降低 Vertica 数据库的可用性和性能。

另请参阅

常规参数中的 DatabaseHeartbeatInterval 常规参数

2 - 降低 K‑Safety 以启用节点移除

K-safety 级别为 1 的数据库至少需要三个节点才能运行,K-safety 级别为 2 的数据库至少需要 5 个节点才能运行。您可以按照如下方式检查群集的当前 K-safety 级别:

=> SELECT current_fault_tolerance FROM system;
 current_fault_tolerance
-------------------------
                       1
(1 row)

要从具有 K-safety 所要求的最少节点数的群集中移除节点,请首先使用 MARK_DESIGN_KSAFE 降低 K-safety 级别。

  1. 使用管理工具vsql 连接到数据库。

  2. 调用 MARK_DESIGN_KSAFE 函数:

    SELECT MARK_DESIGN_KSAFE(n);
    

    其中 n 是数据库的新 K-safety 级别。

3 - 从数据库中移除节点

只要有足够的剩余节点来满足 K-Safety 要求,便可以从数据库中移除节点。不能删除对 K-safety 至关重要的节点。请参阅降低 K‑Safety 以启用节点移除

可使用以下方法之一从数据库中移除节点:

  • 管理控制台界面

  • 管理工具

先决条件
在从数据库中移除节点之前,请验证数据库是否符合以下要求:

  • 它正在运行。

  • 它已备份

  • 该数据库具有符合 K-safety 所需的最少节点数。如有必要,请暂时降低数据库的 K‑safety 级别

  • 数据库中的所有节点都必须处于正常运行状态或处于活动备用状态。如果您在数据库节点关闭时尝试移除节点,Vertica 会报告错误“所有节点都必须处于 UP 或 STANDBY 才能删除节点 (All nodes must be UP or STANDBY before dropping a node)”。即使尝试移除处于关闭状态的节点,也会收到此错误。

管理控制台

使用管理控制台将节点从其管理页面中移除:

按照如下方式移除数据库节点:

  1. 选择要移除的节点。

  2. 在节点列表中单击移除节点 (Remove node)

存在以下限制:

  • 只能移除属于数据库群集的节点。

  • 不能移除处于 DOWN 状态的节点。

移除节点时,它的状态会更改为 STANDBY。可稍后将处于 STANDBY 状态的节点添加回数据库。

管理工具

要使用管理工具从数据库中移除未使用的主机:

  1. 打开管理工具。有关访问管理工具的信息,请参阅使用管理工具

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

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

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

  5. 在“群集管理 (Cluster Management)”菜单中,选择“从数据库中移除主机 (Remove Host(s) from Database)”,然后选择“确定 (OK)”。

  6. 当出现警告,提示您必须重新设计数据库并创建不包括待删除主机的投影时,选择“是 (Yes)”。

  7. 选择要从中移除主机的数据库,然后选择“确定 (OK)”。

    此时将出现当前处于活动状态的主机列表。

  8. 选择要从数据库中移除的主机,然后选择“确定 (OK)”。

  9. 出现提示时,选择“确定 (OK)”以确认您希望移除这些主机。

  10. 收到主机已成功移除的通知时,选择“确定 (OK)”。

  11. 如果从大型群集 (Large Cluster) 配置中移除了某个主机,则打开 vsql 会话并运行 realign_control_nodes:

    SELECT realign_control_nodes();
    

    有关更多详细信息,请参阅 REALIGN_CONTROL_NODES

  12. 如果该主机未被群集中的任何其他数据库使用,您可以从群集中移除该主机。请参阅从群集中移除主机

4 - 从群集中移除主机

如果从数据库中移除的某个主机未被任何其他数据库使用,您可以使用 update_vertica 将该主机从群集中移除。在此操作期间,可让数据库一直运行。

当您使用 update_vertica 减小群集的大小时,它还会执行以下任务:

  • 将 spread 修改为匹配小型群集。

  • 管理工具配置为处理小型群集。

在其中一台 Vertica 群集主机上,运行带 –-remove-hosts 开关的 update_vertica。此开关采用要从群集中移除的主机的逗号分隔列表。您可以按名称或 IP 地址引用主机。例如,可以按如下方式移除主机 host01host02host03

 # /opt/vertica/sbin/update_vertica --remove-hosts host01,host02,host03 \
            --rpm /tmp/vertica-10.1.1-0.x86_64.RHEL6.rpm \
            --dba-user mydba

如果 --rpm 指定新的 RPM,则 Vertica 会先将其安装在现有群集主机上,然后再继续。

update_vertica 使用与 install_vertica.相同的选项。有关所有选项,请参阅使用安装脚本安装 Vertica

要求

  • 如果 -remove-hosts 指定了包含多个主机的列表,则在该列表中的主机之间不能嵌入任何空格。

  • 使用与原始安装相同的命令行选项。如果您针对数据库管理员用户名、密码或目录路径使用非默认值,请在移除主机时提供相同的信息;否则,此过程将失败。考虑将原始安装选项保存在属性文件中,以便在后续安装和更新操作中重新使用这些选项。请参阅静默安装 Vertica