OceanBase學習之路43|如何刪除不再使用的資源單元?

老樹樁12發表於2023-01-18

您可以刪除不再使用的資源單元。

前提條件

刪除資源單元前必須確保當前資源單元未被使用。如果資源單元正在被使用,則需要先將資源單元從資源池中移出後再刪除資源單元。

在刪除資源單元前,需要確認資源單元是否被使用,具體操作如下:

  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;


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026075/viewspace-2932549/,如需轉載,請註明出處,否則將追究法律責任。

相關文章