OceanBase學習之路40|如何將資源池分配給租戶?

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

資源池建立成功後,您可以在建立租戶時將資源池分配給租戶,也可以在修改資源池列表時,將未使用的資源池分配給租戶。

建立租戶時分配資源池

建立租戶時,您可以將未使用的資源池分配給租戶, SQL 語句示例如下:

obclient> CREATE TENANT IF NOT EXISTS test_tenant charset='utf8mb4', replica_num=3, zone_list=('zone1','zone2','zone3'), primary_zone='zone1;zone2,zone3', resource_pool_list=('pool1');

其中:

  • 每個資源池僅能繫結給一個租戶,並且在建立租戶時,一個租戶僅支援指定一個資源池。

  • 租戶在 Zone 內被分配的所有資源總量為:Unit 規格 * Unit 數量。

建立租戶的更多資訊請參見  。

修改租戶資源池列表時分配資源池

您也可以透過  ALTER TENANT 命令將未使用的資源池分配給租戶,對應的 SQL 語法如下:

ALTER TENANT tenant_name RESOURCE_POOL_LIST [=](pool_name [, pool_name...]) ;

語句使用說明:

  • 該語句僅支援由  sys 租戶的管理員執行。

  • 對於  RESOURCE_POOL_LIST,一次僅支援新增或刪除一個資源池。

  • 為租戶新增資源池時,待新增的資源池與現有資源池所分佈的 Zone 不能有交集。

透過修改租戶資源列表的方式為租戶新增資源池通常使用在租戶副本數升級的場景中。

示例背景

假設叢集中當前僅有  z1z2z3 三個 Zone,且三個 Zone 都屬於同一個 Region,每個 Zone 內一臺 OBServer。叢集中有一個普通租戶  tenant1,當前副本分佈情況  locality='F@z1,F@z2,F@z3', resource_pool_list=('pool1');,根據業務需要,需要將租戶  tenant1 由三副本調整為五副本,即租戶的 Locality 由  F@z1,F@z2,F@z3 變為  F@z1,F@z2,F@z3,F@z4,F@z5

示例操作

  1. 叢集中當前僅  z1z2z3 三個 Zone,需要在叢集中增加  z4z5 兩個 Zone。

    在叢集中增加 Zone 的具體操作請參見  。

  2. 在  z4z5 兩個 Zone 上各新增一臺 OBServer。

    向 Zone 內新增 OBServer 的具體操作請參見  。

  3. 使用  root 使用者登入  sys 租戶,為租戶  tenant1 在  z4z5 上新增資源。

    1. 新增資源需要先有可用的資源單元和資源池。

      obclient>CREATE RESOURCE UNIT unit2 MAX_CPU 1, MIN_CPU 1, MEMORY_SIZE '5G', MAX_IOPS 1024, MIN_IOPS 1024, IOPS_WEIGHT 0,LOG_DISK_SIZE '2G';
      obclient>CREATE RESOURCE POOL pool2 unit = 'unit2', unit_num = 1, zone_list=('z4','z5');
    2. 完成後,為租戶在  z4z5 上新增資源。

      obclient>ALTER TENANT tenant1 RESOURCE_POOL_LIST =('pool1', 'pool2') ;
  4. 透過修改租戶 Locality 來增加副本。

    根據 Locality 的變更規則,每次只能增加一個 Zone 內的 Locality,Locality 的變更規則相關資訊請參見  。

    obclient>ALTER TENANT tenant1 LOCALITY='F@z1,F@z2,F@z3,F@z4';
    obclient>ALTER TENANT tenant1 LOCALITY='F@z1,F@z2,F@z3,F@z4,F@z5';


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

相關文章