【赵渝强老师】OceanBase租户的资源管理

简介: OceanBase数据库支持多租户架构,通过资源配置(Unit Config)、资源单元(Unit)和资源池(Resource Pool)实现资源隔离与管理。用户可灵活定义资源规格,分配CPU、内存等资源,并通过资源池管理租户资源分配,提升系统资源利用率和管理效率。

b379.png

OceanBase数据库是多租户的数据库系统,一个集群内可包含多个相互独立的租户,每个租户提供独立的数据库服务。在OceanBase数据库中,使用资源配置(Unit Config)、资源单元(Unit)和资源池(Resource Pool)三个概念,对各租户的可用资源进行管理。


视频讲解如下:


一、 资源配置与资源单元


一个资源单元中可以包含多个资源配置。资源配置是用来描述每个单元中可用的CPU、内存、存储空间和IOPS等的规格。这里需要注意,资源配置指定的是对应资源单元能够提供的服务能力,而不是资源单元的实时负载。下面展示了创建资源单元的完整语法格式:

CREATE RESOURCE UNIT [IF NOT EXISTS] unit_name
MEMORY_SIZE [=] 'size_value',
MAX_CPU [=] cpu_num,
[MAX_IOPS [=] iops_num,]
[MIN_CPU [=] cpu_num,]
[MIN_IOPS [=] iops_num,]
[IOPS_WEIGHT [=]iopsweight,]
[LOG_DISK_SIZE [=] 'size_value'];


下面的语句将创建一个名叫ru1的资源单元,其中将包含若干个资源配置,如:可以的CPU、内存大小、存储空间等。

ob> create resource unit ru1 max_cpu 1, min_cpu 1, memory_size '2G',log_disk_size '2G' ;

# 提示:Meta租户没有独立的Unit,租户资源管理过程中不管理Meta租户。系统在创建租户时默认为Meta租户预留资源,各项资源从用户租户的资源中扣除。目前Meta租户的各项资源采用默认配置,不支持用户指定。


通过DBA_OB_UNIT_CONFIGS视图,可以查看所有资源配置和资源单元信息。

ob> select * from oceanbase.dba_ob_unit_configs \G;

# 输出的信息如下:
*************************** 1. row ***************************
      UNIT_CONFIG_ID: 1
                NAME: sys_unit_config
         CREATE_TIME: 2025-04-09 14:50:05.982963
         MODIFY_TIME: 2025-04-09 14:50:05.982963
             MAX_CPU: 1
             MIN_CPU: 1
         MEMORY_SIZE: 2147483648
       LOG_DISK_SIZE: 2147483648
      DATA_DISK_SIZE: NULL
            MAX_IOPS: 9223372036854775807
            MIN_IOPS: 9223372036854775807
         IOPS_WEIGHT: 1
   MAX_NET_BANDWIDTH: 9223372036854775807
NET_BANDWIDTH_WEIGHT: 1
*************************** 2. row ***************************
      UNIT_CONFIG_ID: 1001
                NAME: ru1
         CREATE_TIME: 2025-04-09 14:56:02.348728
         MODIFY_TIME: 2025-04-09 14:56:02.348728
             MAX_CPU: 1
             MIN_CPU: 1
         MEMORY_SIZE: 2147483648
       LOG_DISK_SIZE: 2147483648
      DATA_DISK_SIZE: NULL
            MAX_IOPS: 9223372036854775807
            MIN_IOPS: 9223372036854775807
         IOPS_WEIGHT: 1
   MAX_NET_BANDWIDTH: 9223372036854775807
NET_BANDWIDTH_WEIGHT: 1
2 rows in set (0.001 sec)


通过使用alter resource unit语句可以修改资源单元的资源配置,例如:

ob> alter resource unit ru1 memory_size '3G';


二、 资源池


资源池由若干个资源单元组成,通过给资源池指定资源配置,可指定资源池下各资源单元的物理资源。下面展示了创建资源池的完整语法格式:

CREATE RESOURCE POOL pool_name
UNIT [=] unit_name,
UNIT_NUM [=] unit_num,
ZONE_LIST [=] ('zone_name' [, 'zone_name' ...]);


在创建资源池之前首先确定集群中的可用区:

ob> use oceanbase;
ob> select zone,status,type from oceanbase.dba_ob_zones;

# 输出的信息如下:
+-------+--------+-----------+
| zone  | status | type      |
+-------+--------+-----------+
| zone1 | ACTIVE | ReadWrite |
| zone2 | ACTIVE | ReadWrite |
+-------+--------+-----------+
2 rows in set (0.044 sec)


创建资源池的示例语句如下:

ob> create resource pool rp1 unit 'ru1', unit_num 2, zone_list ('zone1', 'zone2');

# 此时将出现下面的错误信息:
ERROR 4656 (HY000): resource pool unit num is bigger than zone server count

# 提示:资源池里一个Zone下的Unit的数目大于这个Zone下Server的数量。


执行下面的语句确定每个Zone下的Server数量:

ob> use oceanbase;
ob> select svr_ip,id, zone from dba_ob_servers;

# 输出信息如下:
+---------------+------+-------+
| svr_ip        | id   | zone  |
+---------------+------+-------+
| 192.168.79.11 |    1 | zone1 |
| 192.168.79.12 |    3 | zone1 |
| 192.168.79.13 |    2 | zone2 |
+---------------+------+-------+

# 提示:此时zone2中只包含一个OBServer。


修改上面的资源池创建语句如下:

ob> create resource pool rp1 unit 'ru1', unit_num 1, zone_list ('zone1', 'zone2');


通过DBA_OB_RESOURCE_POOLS视图,可以查看所有资源池信息。

ob> select * from dba_ob_resource_pools \G;

# 输出的信息如下:
*************************** 1. row ***************************
RESOURCE_POOL_ID: 1
            NAME: sys_pool
       TENANT_ID: 1
     CREATE_TIME: 2025-04-09 14:50:06.003151
     MODIFY_TIME: 2025-04-09 14:50:06.060751
      UNIT_COUNT: 1
  UNIT_CONFIG_ID: 1
       ZONE_LIST: zone1;zone2
    REPLICA_TYPE: FULL
*************************** 2. row ***************************
RESOURCE_POOL_ID: 1002
            NAME: rp1
       TENANT_ID: NULL
     CREATE_TIME: 2025-04-09 15:12:09.141263
     MODIFY_TIME: 2025-04-09 15:12:09.141263
      UNIT_COUNT: 1
  UNIT_CONFIG_ID: 1002
       ZONE_LIST: zone1;zone2
    REPLICA_TYPE: FULL
2 rows in set (0.001 sec)


切换资源池的资源配置可以调整资源池下每个资源单元的资源规格,进而调整租户在该资源池上的资源规格和服务能力。例如:

ob> create resource unit ru2 max_cpu 1, min_cpu 1, memory_size '2G',log_disk_size '2G' ;
ob> alter resource pool rp1 unit 'ru2';

# 提示:这里将资源池rp1的资源单元配从ru1切换到了ru2上。


相关文章
|
Oracle 关系型数据库 数据库
OceanBase数据库常见问题之租户创建后想要改字符集如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
SQL 关系型数据库 数据库
OceanBase数据库常见问题之录入租户管理员密码时,提示密码检验失败如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
9月前
|
存储 SQL 数据库
【赵渝强老师】OceanBase的部署架构
OceanBase数据库支持两种部署架构:无共享(Shared-Nothing,SN)模式和共享存储(Shared-Storage,SS)模式。SN模式下,各节点对等,具备高扩展性、可用性和性能,运行于普通PC服务器集群;SS模式采用存算分离架构,租户数据存储在共享对象存储上,本地缓存热点数据。两种模式均支持高可用与多副本一致性,适用于不同业务场景。
521 1
|
4月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
424 6
|
8月前
|
运维 关系型数据库 测试技术
【赵渝强老师】OceanBase部署工具
OceanBase是一款开源的国产分布式关系型数据库,支持通过obd和OCP部署数据库集群。obd(OceanBase Deployer)是OceanBase的安装部署工具,提供命令行和白屏界面两种方式,简化复杂配置流程,降低集群部署难度,并集成包管理、压测软件、集群管理等功能。OCP(OceanBase Cloud Platform)则面向中小型用户,提供主机管理、集群和租户运维等能力。文档详细介绍了obd的在线与离线安装方法、快速体验OceanBase的步骤,以及OCP的基本功能和主页面展示。
514 7
【赵渝强老师】OceanBase部署工具
|
8月前
|
运维 关系型数据库 数据库
【赵渝强老师】OceanBase云平台OCP
OceanBase数据库的OCP(OceanBase Cloud Platform)是面向中小型用户的云数据库管理平台,提供主机管理、集群及租户运维功能。其核心组件包括MetaDB和OCP Server,支持OceanBase数据库的全生命周期管理。本文介绍了使用root用户部署OCP的具体步骤,涵盖配置MetaDB、OCP节点、密码设置等内容,并附有操作界面截图与视频讲解,帮助用户快速完成部署并登录使用。
230 9
|
8月前
|
SQL 缓存 自然语言处理
【赵渝强老师】OceanBase OBServer节点的SQL层
OceanBase OBServer节点的SQL层将用户的SQL请求转化为对Tablet的数据访问。整个处理流程包括Parser、Resolver、Transformer、Optimizer、CodeGenerator和Executor六大组件,依次完成词法解析、语义解析、逻辑改写、执行计划优化、代码生成及执行任务。同时,SQL层还支持Plan Cache功能,缓存历史执行计划以提升后续查询效率。视频讲解和图示展示了完整的SQL执行过程。
114 6
|
8月前
|
存储 SQL 数据库
【赵渝强老师】OceanBase OBServer节点的存储层
OceanBase集群的OBServer实例内部由多个组件协作完成数据存储与管理。其存储层采用分层结构,包括MemTable、L0 Mini SSTable、L1 Minor SSTable和Major SSTable,支持高效的数据写入与读取。数据以Tablet为单位存储,DML操作先写入内存,再逐步落盘并合并优化。文章还附有图示与视频讲解,帮助理解数据写入流程及存储机制。
163 4
|
8月前
|
运维 监控 测试技术
【赵渝强老师】使用obd快速体验OceanBase
OceanBase Deployer (obd) 是 OceanBase 数据库的安装部署工具,支持命令行与白屏界面两种方式。通过标准化复杂配置流程,降低集群部署难度。命令行适合深度用户,白屏界面便于快速体验。obd 还提供包管理、压测、集群管理等运维功能。文中详细介绍了使用 obd 部署 OceanBase 数据库集群的步骤,包括执行命令、连接数据库、查看信息及监控页面访问等内容,并附有视频讲解和示例输出。
244 1
|
9月前
|
存储 关系型数据库 MySQL
【赵渝强老师】OceanBase数据库从零开始:MySQL模式
《OceanBase数据库从零开始:MySQL模式》是一门包含11章的课程,涵盖OceanBase分布式数据库的核心内容。从体系架构、安装部署到租户管理、用户安全,再到数据库对象操作、事务与锁机制,以及应用程序开发、备份恢复、数据迁移等方面进行详细讲解。此外,还涉及连接路由管理和监控诊断等高级主题,帮助学员全面掌握OceanBase数据库的使用与管理。
478 5

推荐镜像

更多