DROP RESOURCE POOL

删除用户创建的资源池。分配给此池的所有内存都将返回到 GENERAL 池

语法

DROP RESOURCE POOL pool-name [ FOR subcluster-spec ]

参数

pool-name
指定要删除的资源池。
FOR subcluster‑spec
仅适用于 Eon 模式,从指定的子群集中删除此资源池,其中 subcluster-spec 为以下几项之一:
  • SUBCLUSTER subcluster-name:从已命名子群集中删除 pool‑name。您不能连接到此子群集,否则 Vertica 会返回错误。
  • CURRENT SUBCLUSTER:从连接到的子群集中删除 pool‑name

如果省略此参数,将从所有子群集中删除资源池。如果为单个子群集创建了资源池,则必须指定此参数以将资源池从该子群集中显式删除;否则,Vertica 将返回错误。

特权

超级用户

如果您尝试删除的资源池是另一个资源池的辅助池,则 Vertica 会返回一个错误。该错误会列出与您尝试删除的辅助池有关的资源池。要删除辅助资源池,首先在主要资源池上将 CASCADE TO 参数设置为 DEFAULT,然后再删除辅助池。

例如,可以删除资源池 rp2,它是 rp1 的辅助池,如下:

=> ALTER RESOURCE POOL rp1 CASCADE TO DEFAULT;
=> DROP RESOURCE POOL rp2;

传输资源请求

按照该池对比于 GENERAL 池的优先级,队列中对该池的请求将全部传输给 GENERAL 池。如果该池的优先级高于 GENERAL 池,则这些请求将放置在队列列首;否则,这些请求将放置在队列列尾。

正在使用该池的用户将收到通知,通知其改为使用 GENERAL 池:

NOTICE:  Switched the following users to the General pool: username

如果用户不具备使用 GENERAL 池的权限,DROP RESOURCE POOL 会返回错误。现有会话将传输给 GENERAL 池,而无论会话的用户是否具备使用 GENERAL 池的权限。如果正在删除的池的限制级别较 GENERAL 池高,这一会话传输过程会导致需要更多用户权限。为避免赋予用户更多特权,请按照以下步骤删除受限池:

  1. 针对所有用户调用池权限

  2. 关闭对池有权限的所有会话。

  3. 删除资源池。

示例

此示例将删除用户定义的资源池:

=> DROP RESOURCE POOL ceo_pool;

此 Eon 模式示例返回了当前子群集,然后删除了当前子群集的用户定义资源池:

=> SELECT CURRENT_SUBCLUSTER_NAME();
 CURRENT_SUBCLUSTER_NAME
-------------------------
 analytics_1
(1 row)

=> DROP RESOURCE POOL dashboard FOR CURRENT SUBCLUSTER;
DROP RESOURCE POOL

另请参阅