本文是基于OceanBase V2.2.77版本 官方文档 做的学习记录,主要是目的是进行OBCP 考试,通过学习文档,希望了解OceanBase知识,最终考过OBCP。go!
本文内容大部分都是OceanBase 官网资料,做了一些比较显著的标志。
租户与资源管理
OceanBase 数据库是多租户的分布式数据库,创建多个相互独立的租户,每个租户是一个独立的数据库服务,用户可以指定需要的硬件资源,创建数据库服务的账号、表格、存储过程等对象。
租户的硬件资源以资源池(Resource Pool)的形式进行描述,资源池是由资源单元(Resource Unit)组成,资源单元是数据库服务内部分配的 CPU、内存、硬盘等硬件资源。
建立租户前:
必须规定租户使用的资源范围,资源池和资源单元可以解决租户资源隔离和负载均衡的需求。
资源单元(Resource Unit)
资源单元对应 CPU、内存、存储空间、IOPS 物理资源,是 OceanBase 数据库服务内部的资源容器。资源单元会在集群内自动负载均衡,任何一个资源单元一定会放置在一个资源足够容纳它的服务器上。
集群内服务器下线,资源单元会自动迁移到集群中的其他服务器,其他服务器资源不足,无法容纳下线服务器资源单元,无法成功下线服务器。
资源单元配置(Resource Unit Config)
资源单元配置是描述资源单元的配置信息,每一个资源单元配置会描述一种规格的 CPU、内存、存储空间、IOPS。修改资源配置可以动态调整资源单元的计算资源,进而调整对应租户的资源。
创建资源单元配置语句:
CREATE RESOURCE UNIT uc1 MAX_CPU 4, MIN_CPU 4, MAX_MEMORY '32G', MIN_MEMORY '32G', MAX_IOPS 128, MIN_IOPS 128, MAX_DISK_SIZE '2T', MAX_SESSION_NUM 64;
目前只有 CPU、内存实际产生作用,存储空间和 IOPS 的值需要填写,系统只限制CPU、内存,其他值实际并不进行限制。
CPU: MAX_CPU MIN_CPU 。资源单元首先按照 MIN_CPU 配置项分配初始资源,当租户使用量较大时,系统会自动调整租户的资源使用量,最大调整到 MAX_CPU。
MEMORY: MAX_MEMORY >= MIN_MEMORY 。系统按照 MAX_MEMORY 进行资源分配,建议将 MAX_MEMORY 与 MIN_MEMORY 设置成相等的。
资源池 (Resource Pool)
资源池由具有相同资源单元配置的若干个资源单元组成<资源单元组成资源池>。
一个资源池只能属于一个租户。一个租户可以拥有一个或多个资源池,这些资源池的集合描述了这个租户所能使用的所有物理机器资源。
一个租户在同一个服务器 上最多有一个资源单元。
创建资源池语句:
CREATE RESOURCE POOL rp1 UNIT 'uc1', UNIT_NUM 1, ZONE_LIST ('zone1');
资源单元的均衡
OceanBase 数据库会将一个租户的资源单元在集群的服务器间均衡。一个租户拥有一个或多个资源池描述的多个资源单元,在每个 Zone 内资源单元的基本均衡策略如下:
同一个租户的若干个资源单元,会均匀分散在不同的服务器上。
当服务器存储使用率超过一定阈值时,通过交换或迁移资源单元,降低存储使用率水位线。
根据资源单元的 CPU 和内存规格,通过交换或迁移资源单元,降低 CPU 和内存的平均水位线




