暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase 学习笔记63:如何删除不再使用的资源单元?

223

您可以删除不再使用的资源单元。

前提条件

删除资源单元前必须确保当前资源单元未被使用。如果资源单元正在被使用,则需要先将资源单元从资源池中移出后再删除资源单元。

在删除资源单元前,需要确认资源单元是否被使用,具体操作如下:

  1. 使用 root 用户登录数据库的 sys 租户。

  2. 执行以下语句,查看资源单元是否被指定资源池。

    示例如下:

     obclient> SELECT a.UNIT_CONFIG_ID, a.NAME FROM oceanbase.DBA_OB_UNIT_CONFIGS a,oceanbase.DBA_OB_RESOURCE_POOLS b WHERE b.UNIT_CONFIG_ID=a.UNIT_CONFIG_ID;
     +----------------+-----------------+
     | UNIT_CONFIG_ID | NAME            |
     +----------------+-----------------+
     |              1 | sys_unit_config |
     |           1001 | unit001         |
     |           1001 | unit001         |
     +----------------+-----------------+
     3 rows in set
    

根据查询结果,如果查询结果的 name 列中无该资源单元名称,则表示该资源单元未被指定给资源池;如果查询结果的 name 列中有该资源单元名称,则表示资源单元已被指定给资源池。

通过 SQL 语句删除资源单元

删除资源单元

  • 对于资源单元未被使用的场景

    如果资源单元未被指定给资源池,您可以直接执行以下语句,删除资源单元。示例语句如下:

    obclient> DROP RESOURCE UNIT unit1;
    

    注意

    使用 DROP RESOURCE UNIT 语句删除资源单元时,仅支持删除单个资源单元,不支持批量删除多个资源单元。

  • 对于资源单元正在被使用的场景

    如果资源单元已被指定给资源池,需要为原资源池指定新的资源单元后,再删除资源单元。

    示例如下:

    假设待删除的资源单元为 unit1unit1 被指定给了资源池 pool1,如果要移除资源单元 unit1,则需要先创建资源单元 unit2,并将 unit2 指定给 pool1 后,再删除 unit1

    obclient> CREATE RESOURCE UNIT unit2 MAX_CPU=4, MIN_CPU=4, MEMORY_SIZE='5G', MAX_IOPS=1024, MIN_IOPS=1024, IOPS_WEIGHT=0, LOG_DISK_SIZE='2G';
    
    obclient> ALTER RESOURCE POOL pool1 UNIT='unit2';
    
    obclient> DROP RESOURCE UNIT unit1;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论