START_DRAIN_SUBCLUSTER
仅限 Eon 模式
排空一个或多个子群集。此函数将指定子群集中的所有节点标记为排空。现有用户会话继续在排空节点上运行,但这些节点拒绝新的客户端连接,且被排除在负载均衡操作之外。但 dbadmin 仍然可以连接到排空节点。
在优雅关闭的过程中,要排空子群集上的连接,可调用 SHUTDOWN_WITH_DRAIN。有关详细信息,请参阅优雅关闭。
要取消对子群集的排空操作,请调用 CANCEL_DRAIN_SUBCLUSTER。如果停止子群集中的所有节点排空操作,则会在重新启动时将这些节点标记为未排空。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
START_DRAIN_SUBCLUSTER( 'subcluster-name' )
参数
- subcluster-name
- 要排空的子群集的名称。输入空字符串将排空数据库中的所有子群集。
特权
超级用户
示例
以下示例演示了如何排空名为 analytics 的子群集:
=> SELECT subcluster_name, node_name, node_state FROM nodes;
subcluster_name | node_name | node_state
-------------------+--------------------+------------
default_subcluster | verticadb_node0001 | UP
default_subcluster | verticadb_node0002 | UP
default_subcluster | verticadb_node0003 | UP
analytics | verticadb_node0004 | UP
analytics | verticadb_node0005 | UP
analytics | verticadb_node0006 | UP
(6 rows)
=> SELECT START_DRAIN_SUBCLUSTER('analytics');
START_DRAIN_SUBCLUSTER
-------------------------------------------------------
Targeted subcluster: 'analytics'
Action: START DRAIN
(1 row)
您可以通过查询 DRAINING_STATUS 系统表来确认子群集正在排空:
=> SELECT node_name, subcluster_name, is_draining FROM draining_status ORDER BY 1;
node_name | subcluster_name | is_draining
-------------------+--------------------+-------
verticadb_node0001 | default_subcluster | f
verticadb_node0002 | default_subcluster | f
verticadb_node0003 | default_subcluster | f
verticadb_node0004 | analytics | t
verticadb_node0005 | analytics | t
verticadb_node0006 | analytics | t