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

分布式数据库学习Note245:OceanBase社区版中,如何通过调整 Primary Zone 实现租户扩缩容?

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/



本文介绍如何通过修改 Primary Zone,达到租户扩容的功能。

增加 Primary Zone

  1. 使用 root 用户登录到集群的 sys 租户。

    obclient -h172.30.xxx.xxx -P2883 -uroot@sys -pxxxx -A
    
  2. 进入 oceanbase 数据库。

    obclient>use oceanbase;
    
  3. 查询租户 mq_t1 的基本信息,例如 localityprimary zone 等属性。

     obclient> SELECT * FROM oceanbase.DBA_OB_TENANTS WHERE tenant_id = 1004;
     +-----------+-------------+-------------+----------------------------+----------------------------+----------------------------------------+------------------------------------------------------------------+-------------------+--------------------+--------+---------------+--------+
     | TENANT_ID | TENANT_NAME | TENANT_TYPE | CREATE_TIME                | MODIFY_TIME                | PRIMARY_ZONE                           | LOCALITY                                                         | PREVIOUS_LOCALITY | COMPATIBILITY_MODE | STATUS | IN_RECYCLEBIN | LOCKED |
     +-----------+-------------+-------------+----------------------------+----------------------------+----------------------------------------+------------------------------------------------------------------+-------------------+--------------------+--------+---------------+--------+
     |      1004 | mq_t1       | USER        | 2023-01-04 18:32:08.212745 | 2023-01-04 18:32:33.343667 | sa128_obv4_1;sa128_obv4_2,sa128_obv4_3 | FULL{1}@sa128_obv4_1, FULL{1}@sa128_obv4_2, FULL{1}@sa128_obv4_3 | NULL              | MYSQL              | NORMAL | NO            | NO     |
     +-----------+-------------+-------------+----------------------------+----------------------------+----------------------------------------+------------------------------------------------------------------+-------------------+--------------------+--------+---------------+--------+
     1 row in set
    
  4. 查询租户 mq_t1 的 Unit 信息,在单个 Zone 的 unit num 为 2。

     obclient> SELECT * FROM oceanbase.DBA_OB_UNITS WHERE tenant_id = 1004;
     +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+--------------+-------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
     | UNIT_ID | TENANT_ID | STATUS | RESOURCE_POOL_ID | UNIT_GROUP_ID | CREATE_TIME                | MODIFY_TIME                | ZONE         | SVR_IP      | SVR_PORT | MIGRATE_FROM_SVR_IP | MIGRATE_FROM_SVR_PORT | MANUAL_MIGRATE | UNIT_CONFIG_ID | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT |
     +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+--------------+-------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
     |    1004 |      1004 | ACTIVE |             1005 |          1003 | 2023-01-04 11:48:36.582413 | 2023-01-04 18:32:08.215935 | sa128_obv4_1 | xx.xx.xx.xx |     2882 | NULL                |                  NULL | NULL           |           1006 |       3 |       3 | 12884901888 |   38654705664 |    30000 |    30000 |           3 |
     |    1005 |      1004 | ACTIVE |             1005 |          1003 | 2023-01-04 11:48:36.591414 | 2023-01-04 18:32:08.215935 | sa128_obv4_2 | xx.xx.xx.xx |     2882 | NULL                |                  NULL | NULL           |           1006 |       3 |       3 | 12884901888 |   38654705664 |    30000 |    30000 |           3 |
     |    1006 |      1004 | ACTIVE |             1005 |          1003 | 2023-01-04 14:13:36.980799 | 2023-01-04 18:32:08.217005 | sa128_obv4_3 | xx.xx.xx.xx |     2882 | NULL                |                  NULL | NULL           |           1006 |       3 |       3 | 12884901888 |   38654705664 |    30000 |    30000 |           3 |
     |    1007 |      1004 | ACTIVE |             1005 |          1004 | 2023-01-04 23:50:57.989966 | 2023-01-04 23:50:57.989966 | sa128_obv4_1 | xx.xx.xx.xx |     2882 | NULL                |                  NULL | NULL           |           1006 |       3 |       3 | 12884901888 |   38654705664 |    30000 |    30000 |           3 |
     |    1008 |      1004 | ACTIVE |             1005 |          1004 | 2023-01-04 23:50:57.995273 | 2023-01-04 23:50:57.995273 | sa128_obv4_2 | xx.xx.xx.xx |     2882 | NULL                |                  NULL | NULL           |           1006 |       3 |       3 | 12884901888 |   38654705664 |    30000 |    30000 |           3 |
     |    1009 |      1004 | ACTIVE |             1005 |          1004 | 2023-01-04 23:50:57.997360 | 2023-01-04 23:50:57.997360 | sa128_obv4_3 | xx.xx.xx.xx |     2882 | NULL                |                  NULL | NULL           |           1006 |       3 |       3 | 12884901888 |   38654705664 |    30000 |    30000 |           3 |
     +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+--------------+-------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
     6 rows in set
    
  5. 查询租户 mq_t1 的日志流信息,对应 unit num 为 2 和 primary zone 为 1,因此日志流个数为 2。

     obclient> SELECT * FROM oceanbase.CDB_OB_LS WHERE tenant_id = 1004;
     +-----------+-------+--------+----------------------------------------+---------------+-------------+---------------------+----------+---------------------+---------------------+
     | TENANT_ID | LS_ID | STATUS | PRIMARY_ZONE                           | UNIT_GROUP_ID | LS_GROUP_ID | CREATE_SCN          | DROP_SCN | SYNC_SCN            | READABLE_SCN        |
     +-----------+-------+--------+----------------------------------------+---------------+-------------+---------------------+----------+---------------------+---------------------+
     |      1004 |     1 | NORMAL | sa128_obv4_1;sa128_obv4_2,sa128_obv4_3 |             0 |           0 |                NULL |     NULL | 1672847476919847432 | 1672847476694110593 |
     |      1004 |  1001 | NORMAL | sa128_obv4_1;sa128_obv4_2,sa128_obv4_3 |          1003 |        1001 | 1672828353411747395 |     NULL | 1672847481926946171 | 1672847481725653432 |
     |      1004 |  1002 | NORMAL | sa128_obv4_1;sa128_obv4_2,sa128_obv4_3 |          1004 |        1002 | 1672847466822734122 |     NULL | 1672847481906918109 | 1672847481705364375 |
     +-----------+-------+--------+----------------------------------------+---------------+-------------+---------------------+----------+---------------------+---------------------+
     3 rows in set
    
  6. 修改租户 mq_t1 的 PRIMARY_ZONE 属性,从 1 调整为 2 。

     obclient> ALTER TENANT mq_t1 PRIMARY_ZONE='sa128_obv4_1,sa128_obv4_2;sa128_obv4_3'; 
    
  7. 查询租户 mq_t1 的基本信息,确认 PRIMARY_ZONE 属性修改成功,由 sa128_obv4_1 变更为 sa128_obv4_1,sa128_obv4_2

     obclient> SELECT * FROM oceanbase.DBA_OB_TENANTS WHERE tenant_id = 1004;
     +-----------+-------------+-------------+----------------------------+----------------------------+----------------------------------------+------------------------------------------------------------------+-------------------+--------------------+--------+---------------+--------+
     | TENANT_ID | TENANT_NAME | TENANT_TYPE | CREATE_TIME                | MODIFY_TIME                | PRIMARY_ZONE                           | LOCALITY                                                         | PREVIOUS_LOCALITY | COMPATIBILITY_MODE | STATUS | IN_RECYCLEBIN | LOCKED |
     +-----------+-------------+-------------+----------------------------+----------------------------+----------------------------------------+------------------------------------------------------------------+-------------------+--------------------+--------+---------------+--------+
     |      1004 | mq_t1       | USER        | 2023-01-04 18:32:08.212745 | 2023-01-04 23:58:49.632182 | sa128_obv4_1,sa128_obv4_2;sa128_obv4_3 | FULL{1}@sa128_obv4_1, FULL{1}@sa128_obv4_2, FULL{1}@sa128_obv4_3 | NULL              | MYSQL              | NORMAL | NO            | NO     |
     +-----------+-------------+-------------+----------------------------+----------------------------+----------------------------------------+------------------------------------------------------------------+-------------------+--------------------+--------+---------------+--------+
     1 row in set
    
  8. 查询租户 mq_t1 的 Unit 信息,变更前后 unit num 保持不变。

     obclient> SELECT * FROM oceanbase.DBA_OB_UNITS WHERE tenant_id = 1004;
     +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+--------------+-------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
     | UNIT_ID | TENANT_ID | STATUS | RESOURCE_POOL_ID | UNIT_GROUP_ID | CREATE_TIME                | MODIFY_TIME                | ZONE         | SVR_IP      | SVR_PORT | MIGRATE_FROM_SVR_IP | MIGRATE_FROM_SVR_PORT | MANUAL_MIGRATE | UNIT_CONFIG_ID | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT |
     +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+--------------+-------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
     |    1004 |      1004 | ACTIVE |             1005 |          1003 | 2023-01-04 11:48:36.582413 | 2023-01-04 18:32:08.215935 | sa128_obv4_1 | xx.xx.xx.xx |     2882 | NULL                |                  NULL | NULL           |           1006 |       3 |       3 | 12884901888 |   38654705664 |    30000 |    30000 |           3 |
     |    1005 |      1004 | ACTIVE |             1005 |          1003 | 2023-01-04 11:48:36.591414 | 2023-01-04 18:32:08.215935 | sa128_obv4_2 | xx.xx.xx.xx |     2882 | NULL                |                  NULL | NULL           |           1006 |       3 |       3 | 12884901888 |   38654705664 |    30000 |    30000 |           3 |
     |    1006 |      1004 | ACTIVE |             1005 |          1003 | 2023-01-04 14:13:36.980799 | 2023-01-04 18:32:08.217005 | sa128_obv4_3 | xx.xx.xx.xx |     2882 | NULL                |                  NULL | NULL           |           1006 |       3 |       3 | 12884901888 |   38654705664 |    30000 |    30000 |           3 |
     |    1007 |      1004 | ACTIVE |             1005 |          1004 | 2023-01-04 23:50:57.989966 | 2023-01-04 23:50:57.989966 | sa128_obv4_1 | xx.xx.xx.xx |     2882 | NULL                |                  NULL | NULL           |           1006 |       3 |       3 | 12884901888 |   38654705664 |    30000 |    30000 |           3 |
     |    1008 |      1004 | ACTIVE |             1005 |          1004 | 2023-01-04 23:50:57.995273 | 2023-01-04 23:50:57.995273 | sa128_obv4_2 | xx.xx.xx.xx |     2882 | NULL                |                  NULL | NULL           |           1006 |       3 |       3 | 12884901888 |   38654705664 |    30000 |    30000 |           3 |
     |    1009 |      1004 | ACTIVE |             1005 |          1004 | 2023-01-04 23:50:57.997360 | 2023-01-04 23:50:57.997360 | sa128_obv4_3 | xx.xx.xx.xx |     2882 | NULL                |                  NULL | NULL           |           1006 |       3 |       3 | 12884901888 |   38654705664 |    30000 |    30000 |           3 |
     +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+--------------+-------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
     6 rows in set
    
  9. 查询租户 mq_t1 的日志流信息,变更前为 2,变更后为 4。

     obclient> SELECT * FROM oceanbase.CDB_OB_LS WHERE tenant_id = 1004;
     +-----------+-------+--------+----------------------------------------+---------------+-------------+---------------------+----------+---------------------+---------------------+
     | TENANT_ID | LS_ID | STATUS | PRIMARY_ZONE                           | UNIT_GROUP_ID | LS_GROUP_ID | CREATE_SCN          | DROP_SCN | SYNC_SCN            | READABLE_SCN        |
     +-----------+-------+--------+----------------------------------------+---------------+-------------+---------------------+----------+---------------------+---------------------+
     |      1004 |     1 | NORMAL | sa128_obv4_1;sa128_obv4_2;sa128_obv4_3 |             0 |           0 |                NULL |     NULL | 1672847957666739465 | 1672847957458353706 |
     |      1004 |  1001 | NORMAL | sa128_obv4_1;sa128_obv4_2;sa128_obv4_3 |          1003 |        1001 | 1672828353411747395 |     NULL | 1672847959672667216 | 1672847959571948499 |
     |      1004 |  1002 | NORMAL | sa128_obv4_1;sa128_obv4_2;sa128_obv4_3 |          1004 |        1002 | 1672847466822734122 |     NULL | 1672847959641019952 | 1672847959540230639 |
     |      1004 |  1003 | NORMAL | sa128_obv4_2;sa128_obv4_1;sa128_obv4_3 |          1003 |        1001 | 1672847937481543793 |     NULL | 1672847959561876069 | 1672847959461288966 |
     |      1004 |  1004 | NORMAL | sa128_obv4_2;sa128_obv4_1;sa128_obv4_3 |          1004 |        1002 | 1672847937561171512 |     NULL | 1672847959675241289 | 1672847959574491818 |
     +-----------+-------+--------+----------------------------------------+---------------+-------------+---------------------+----------+---------------------+---------------------+
     5 rows in set
    

通过上述示例,将租户 mq_t1 的 Primary Zone 的 Zone 个数从 1 变更为 2。变更前租户在每个 Zone 的 Unit 个数为 2,对应的日志流个数为 2;变更后租户在每个 Zone 的 Unit 个数保持不变,但 Primary Zone 个数从 1 变更为 2,从而对应的日志流个数变更为 4。变更后租户的服务节点从 2 扩容为 4,从而实现了租户扩容。


欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论