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

【玩转OceanBase笔记26】删除不再使用的资源单元如何操作?

315

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

前提条件

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

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

  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,则需要先创建资源单元 unit1,并将 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论