此部分包含管理大型分布式数据库群集上的 spread 部署的函数以及控制群集如何组织数据以进行重新平衡的函数。
群集函数
- 1: CANCEL_REBALANCE_CLUSTER
- 2: DISABLE_LOCAL_SEGMENTS
- 3: ENABLE_LOCAL_SEGMENTS
- 4: ENABLE_ELASTIC_CLUSTER
- 5: REALIGN_CONTROL_NODES
- 6: REBALANCE_CLUSTER
- 7: RELOAD_SPREAD
- 8: SET_CONTROL_SET_SIZE
- 9: SET_SCALING_FACTOR
- 10: START_REBALANCE_CLUSTER()
1 - CANCEL_REBALANCE_CLUSTER
停止任何正在进行中或正在等待执行的重新平衡任务。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
CANCEL_REBALANCE_CLUSTER()
超级用户
示例
=> SELECT CANCEL_REBALANCE_CLUSTER();
CANCEL_REBALANCE_CLUSTER
--------------------------
CANCELED
(1 row)
另请参阅
2 - DISABLE_LOCAL_SEGMENTS
禁用本地数据分段,本地数据分段会将节点上的投影分段拆分至可轻松移动到其他节点上的容器中。有关详细信息,请参阅局部数据分段。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
DISABLE_LOCAL_SEGMENTS()
超级用户
示例
=> SELECT DISABLE_LOCAL_SEGMENTS();
DISABLE_LOCAL_SEGMENTS
------------------------
DISABLED
(1 row)
3 - ENABLE_LOCAL_SEGMENTS
启用本地存储分段,本地存储分段可以将节点上的投影分段拆分到可以轻松移动至其他节点的容器中。有关详细信息,请参阅局部数据分段。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
ENABLE_LOCAL_SEGMENTS()
超级用户
示例
=> SELECT ENABLE_LOCAL_SEGMENTS();
ENABLE_LOCAL_SEGMENTS
-----------------------
ENABLED
(1 row)
4 - ENABLE_ELASTIC_CLUSTER
启用弹性群集调整,通过将一个节点的数据分段至可以轻松移动至其他主机的区块中,弹性群集调整可更为有效地扩大或缩小数据库群集的大小。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
ENABLE_ELASTIC_CLUSTER()
超级用户
示例
=> SELECT ENABLE_ELASTIC_CLUSTER();
ENABLE_ELASTIC_CLUSTER
------------------------
ENABLED
(1 row)
5 - REALIGN_CONTROL_NODES
启用大型群集时,使得 Vertica 重新评估群集或子群集中的哪些节点为
控制节点,以及哪些节点被分配给它们作为从属节点。在更改企业模式数据库中的故障组或更改任一数据库模式中的控制节点数后调用此函数。调用此函数后,查询
V_CATALOG.CLUSTER_LAYOUT
系统表以查看建议的群集中节点的新布局。在新的控制节点分配生效之前,您还必须采取其他步骤。有关详细信息,请参阅更改控制节点的数量并重新对齐。
注意
在 10.0.1 之前的 Vertica 版本中,控制节点分配不限于在同一个 Eon 模式子群集内。如果您尝试重新调整控制节点在其他子群集中具有依赖项的子群集中的控制节点,则此函数将返回错误。在这种情况下,您必须首先重新调整其他子群集中的控制节点。重新调整其他子群集可修复跨子群集的依赖项,允许您重新调整您尝试重新调整的原始子群集中的控制节点。这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
在 ** Enterprise 模式 下:**
REALIGN_CONTROL_NODES()
在 ** Eon 模式 下:**
REALIGN_CONTROL_NODES('subcluster_name')
参数
-
subcluster_name
- 要在其中重新调整控制节点的子群集的名称。只有该子群集中的节点受到影响。其他子群集不受影响。仅当数据库在 Eon 模式下运行时才允许。
特权
超级用户示例
在 Enterprise 模式数据库中,从所有节点中选择控制节点,并将剩余节点分配给一个控制节点:
=> SELECT REALIGN_CONTROL_NODES();
在 Eon 模式数据库中,重新评估名为 analytics 的子群集中的控制节点分配:
=> SELECT REALIGN_CONTROL_NODES('analytics');
另请参阅
6 - REBALANCE_CLUSTER
一个会话前台任务,将同步重新平衡数据库群集。REBALANCE_CLUSTER 仅在重新平衡操作完成后返回。如果当前会话结束,则操作立即中止。要将群集重新平衡为后台任务,请调用 START_REBALANCE_CLUSTER()。
在大型群集排列中,您通常在流中调用 REBALANCE_CLUSTER(请参阅更改控制节点的数量并重新对齐)。在更改控制节点(spread 主机)的数量和分布后,运行 REBALANCE_CLUSTER 以实现容错。
有关重新平衡任务的详细信息,请参阅在节点之间重新平衡数据。
提示
默认情况下,在执行重新平衡之前,Vertica 会查询系统表以计算重新平衡任务中涉及的所有投影的大小。此查询可能会为重新平衡操作增加大量开销。要禁用此查询,请将投影配置参数 RebalanceQueryStorageContainers 设置为 0。这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
REBALANCE_CLUSTER()
超级用户
示例
=> SELECT REBALANCE_CLUSTER();
REBALANCE_CLUSTER
-------------------
REBALANCED
(1 row)
7 - RELOAD_SPREAD
更新对编录的 Spread 配置文件的群集更改。这些更改包括:
-
新的或重新调整的控制节点
-
新的 Spread 主机或容错组
-
新的或删除的群集节点
此函数通常在多步进程中用于较大的弹性群集排列。调用此函数可能需要您重新启动数据库。然后,您必须重新平衡群集以实现容错。有关详细信息,请参阅定义和重新调整控制节点。
当心
在 Eon 模式数据库中,使用此函数可能会导致数据库变为只读。调用此函数后,节点可能会断开连接。如果在没有这些节点的情况下,数据库不再有
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
RELOAD_SPREAD( true )
参数
- true
- 将与控制消息责任相关的群集更改更新到 Spread 配置文件。
特权
超级用户示例
使用更改来更新群集以控制消息传送:
=> SELECT reload_spread(true);
reload_spread
---------------
reloaded
(1 row)
另请参阅
REBALANCE_CLUSTER
8 - SET_CONTROL_SET_SIZE
设置启用大型群集时参与 spread 服务的 控制节点数。如果数据库在 Enterprise 模式下运行,该函数设置整个数据库群集的控制节点数。如果数据库在 Eon 模式下运行,则此函数设置您指定的子群集中的控制节点数。有关详细信息,请参阅大型群集。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
在 Enterprise 模式下:
SET_CONTROL_SET_SIZE( control_nodes )
在 Eon 模式下:
SET_CONTROL_SET_SIZE('subcluster_name', control_nodes )
参数
-
subcluster_name
- 要在其中设置控制节点数的子群集的名称。仅当数据库在 Eon 模式下运行时才允许。
-
control_nodes
- 分配给群集(在 Enterprise 模式下)或子群集(在 Eon 模式下)的控制节点数。值可以是以下之一:
-
正整数值:Vertica 将您指定的控制节点数分配给群集或子群集。该值可以大于当前节点数。该值不能大于 120(数据库的最大控制节点数)。在 Eon 模式下,该值加上为所有其他子群集设置的控制节点数的总和不能超过 120。
-
-1
:使群集或子群集中的每个节点都成为控制节点。该值可有效禁用群集或子群集的大型群集。
-
特权
超级用户示例
在 Enterprise 模式数据库中,将整个群集的控制节点数设置为 5:
=> SELECT set_control_set_size(5);
SET_CONTROL_SET_SIZE
----------------------
Control size set
(1 row)
另请参阅
9 - SET_SCALING_FACTOR
设置比例因子,比例因子决定在重新平衡数据库和启用了使用局部数据分段时,所使用的存储容器数量。有关详细信息,请参阅群集扩展。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
SET_SCALING_FACTOR( factor )
参数
- factor
- 1 至 32 之间的整数值。Vertica 使用此值来计算进行重新平衡或启用了局部数据分段时,每个投影分解到多少个存储容器中。
超级用户
最佳实践
比例因子决定了在启用局部分段时,Vertica 在重新平衡期间用于跨数据库存储每个投影的存储容器的数量。在设置比例因子时,请遵循以下准则:
-
存储容器的数量应大于或等于分区数量与本地分段数量的积:
num‑storage‑containers >= ( num‑partitions * num‑local‑segments
) -
若将比例因子设置得足够高,以便重新平衡可以传输本地分段以满足偏移阈值,但将值设置得很小,以便存储容器数量将不会产生过多的 ROS 容器,并导致 ROS 推回)。ROS 容器的最大数量(默认为 1024)由配置参数 ContainersPerProjectionLimit 设置。
示例
=> SELECT SET_SCALING_FACTOR(12);
SET_SCALING_FACTOR
--------------------
SET
(1 row)
10 - START_REBALANCE_CLUSTER()
一个后台任务,异步重新平衡数据库群集。此函数在重新平衡操作完成后立即返回。即使您关闭当前会话或数据库关闭,重新平衡也会持续到操作完成。在关闭的情况下,重新平衡会在群集重新启动后恢复。要停止重新平衡操作,请调用
CANCEL_REBALANCE_CLUSTER
。
有关重新平衡任务的详细信息,请参阅在节点之间重新平衡数据。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
START_REBALANCE_CLUSTER()
超级用户
示例
=> SELECT START_REBALANCE_CLUSTER();
START_REBALANCE_CLUSTER
-------------------------
REBALANCING
(1 row)
另请参阅
REBALANCE_CLUSTER