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 池高,这一会话传输过程会导致需要更多用户权限。为避免赋予用户更多特权,请按照以下步骤删除受限池:
-
针对所有用户调用池权限。
-
关闭对池有权限的所有会话。
-
删除资源池。
示例
此示例将删除用户定义的资源池:
=> 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