在创建Oceanbase数据库资源池的时候,需要先创建资源单元,然后才能创建资源池分配给租户,同一个租户在一个Zone内只能在一个Observer上拥有一个Unit。
资源单元(Unit)是资源分配的最小单元,同一个Unit不能跨节点(OBServer),每个租户在一台observer上只能有一个unit,Unit是数据的容器。
创建资源单元
eg:先定义几个不同的资源规格。每个规格代表了一定的资源(包括CPU、Mem、Disk、session、IOPS)。当然实际上当前版本只对CPU和Mem资源进行限制。
create resource unit unit1
max_cpu=20, min_cpu=20,
max_memory='40G', min_memory='40G',
max_iops=10000,min_iops=1000,
max_session_num=1000000,
max_disk_size='1024G’;
create resource unit S3
max_cpu=20, min_cpu=20,
max_memory='100G', min_memory='100G',
max_iops=10000,min_iops=1000,
max_session_num=1000000,
max_disk_size='1024G';
创建资源池
create resource pool pool1
unit='unit1',
unit_num=1,
zone_list=('zone1','zone2','zone3')
;
创建租户
create tanant mysql_tenant
resource_pool_list=('pool1'),
primary_zone='zone1,zone2,zone3'
set ob_tcp_invited_nodes='%',
ob_compatibility_mode='mysql',
recyclebin=off,
ob_timestamp_service='GTS'
;
查看所有服务器的状态
__all_server
查看集群中整体资源分配情况
__all_virtual_server_stat
eg:查看集群资源由各个节点的聚合情况
select zone,concat(svr_ip,':',svr_port) observer,
cpu_capacity,cpu_total,cpu_assigned,cpu_assigned_percent,
mem_capacity,mem_total,mem_assigned,mem_assigned_percent,
unit_Num,round(`load`,2) `load`,
round(cpu_weight,2) cpu_weight,
round(memory_weight,2) mem_weight,
leader_count
from __all_virtual_server_stat order by zone,svr_ip;
查看集群的状态
__all_unit_confif
__all_unit
__all_resource_pool