1.租户介绍
资源规格:dba_ob_unit_configs,定义了常见物理资源项大小,包括cpu、内存、磁盘、iops
资源单元:dba_ob_units,资源调度的基本单位,具有节点、zone、region等位置属性,服务器-机房-地域
资源池:dba_ob_resource_pools,每个unit归属于一个资源池,每个资源池由若干unit组成
租户:dba_ob_tenants
2.租户类型
系统租户:默认创建,与集群生命期一致,仅有一个1号日志流,只支持单点写入,不具备扩展能力。
用户租户:对外提供完整的数据库功能,支持mysql和oracle两种兼容模式,支持水平扩展和动态扩缩容
meta租户:每一个用户租户对应创建一个mete租户,存储用户租户私有数据如配置项、副本、合并信息
在用户租户下创建的用户,只能登录到本租户,对其他租户不可见
对于mysql兼容的租户,可以从视图mysql.user查询用户信息,information_schema.tables视图查询表信息
对于oracle兼容的租户,可以从系统视图all_users中查询用户信息,all_tables查询表信息
3.租户系统变量
全局变量:global级别,数据库同一租户的不同用户共享全局变量
会话变量:session级别,仅对当前session生效。客户端连接会复制全局变量来自动生成session变量
4.创建租户
创建资源规格
select * from dba_ob_unit_configs; 查询已有资源规格信息
CREATE RESOURCE UNIT S1_unit_config MEMORY_SIZE = '2G',MAX_CPU = 1, MIN_CPU = 1,LOG_DISK_SIZE = '6G',MAX_IOPS = 10000, MIN_IOPS = 10000, IOPS_WEIGHT=1;创建S1_unit_config资源规格,cpu1核,内存2g
创建资源池
select * from dba_ob_resource_pools;获取资源池的配置信息
CREATE RESOURCE POOL mq_pool_01 UNIT='S1_unit_config', UNIT_NUM=1, ZONE_LIST=('zone1','zone2');创建名为mq_pool_01资源池,在zone1和zone2各创建1个unit,每个unit的资源规格为S1_unit_config
创建租户
select * from dba_ob_tenants;查看所有租户信息
CREATE TENANT IF NOT EXISTS mq_t1 PRIMARY_ZONE='zone1', RESOURCE_POOL_LIST=('mq_pool_01') set OB_TCP_INVITED_NODES='%';创建名为mq_t1的租户,副本数2(继承资源池zone_list个数),租户在每个zone的unit个数继承资源池的unit_num属性,资源池mq_pool_01,primary_zone为zone1,允许所有ip连接数据库
obclient -h10.44.100.198 -P2881 -uroot@mq_t1 -Doceanbase -A 默认密码空
alter user root identified by 'xq1211';
5.查看租户资源配置
SELECT c.TENANT_ID, e.TENANT_NAME, concat(c.NAME, ': ', d.NAME) `pool:conf`,concat(c.UNIT_COUNT, ' unit: ', d.min_cpu, 'C/',
ROUND(d.MEMORY_SIZE/1024/1024/1024,0), "G") unit_info FROM DBA_OB_RESOURCE_POOLS c, DBA_OB_UNIT_CONFIGS d, DBA_OB_TENANTS e
WHERE c.UNIT_CONFIG_ID=d.UNIT_CONFIG_ID AND c.TENANT_ID=e.TENANT_ID
AND c.TENANT_ID>1000 ORDER BY c.TENANT_ID;
+-----------+-------------+----------------------------+---------------+
| TENANT_ID | TENANT_NAME | pool:conf | unit_info |
+-----------+-------------+----------------------------+---------------+
| 1002 | ocp | ocp_pool: ocp_unit | 1 unit: 1C/2G |
| 1004 | mq_t1 | mq_pool_01: S1_unit_config | 1 unit: 1C/2G |
+-----------+-------------+----------------------------+---------------+
#查看租户的资源单元部署的位置,所在节点的ip
SELECT a.TENANT_NAME,a.TENANT_ID,b.SVR_IP FROM DBA_OB_TENANTS a,GV$OB_UNITS b WHERE a.TENANT_ID=b.TENANT_ID;
6.租户白名单
SHOW VARIABLES LIKE 'ob_tcp_invited_nodes'; 查看租户白名单
ALTER TENANT mq_t1 VARIABLES ob_tcp_invited_nodes = '10.10.10.%'; sys租户管理员修改租户白名单
SET GLOBAL ob_tcp_invited_nodes='10.10.10.%'; 用户租户管理员修改本租户白名单
7.租户系统变量
show variables like 'ob_query_timeout'; 查看session级别变量
show global variables like 'ob_query_timeout'; 查看global级别变量
SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME = 'ob_query_timeout';
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'ob_query_timeout';
set ob_query_timeout=20000000; 用户租户通过set修改session级别变量值
alter session set ob_query_timeout=20000000; oracle模式设置session级别变量值
set global ob_query_timeout=20000000; 用户租户通过set修改global级别变量值
alter system set ob_query_timeout=20000000; oracle模式设置global级别变量值
8.租户扩缩容
提高单节点的服务能力:调大租户的资源规格
增加服务节点:通过增加unit num和primary zone从而增加服务器节点
通过调整资源规格实现租户扩缩容
1.查询节点总资源和已经分配的资源,CPU_CAPACITY总cpu,MEM_CAPACITY总内存
select *from gv$ob_servers\G
2.获取租户使用资源规格id
SELECT a.TENANT_NAME, b.UNIT_CONFIG_ID FROM oceanbase.DBA_OB_TENANTS a,oceanbase.DBA_OB_RESOURCE_POOLS b WHERE b.TENANT_ID=a.TENANT_ID;
3.租户配置了独立的资源规格场景
ALTER RESOURCE UNIT S1_unit_config MAX_CPU 2, MIN_CPU 2;
4.多个租户使用了相同的资源规格场景
CREATE RESOURCE UNIT new_S1_unit_config MAX_CPU = 5, MIN_CPU = 5, MEMORY_SIZE =12884901888,LOG_DISK_SIZE = 38654705664,MAX_IOPS = 30000, MIN_IOPS = 30000, IOPS_WEIGHT=3;
ALTER RESOURCE POOL mq_pool_01 unit='new_S1_unit_config';调整租户资源池使用新的资源规格
---------------------------------
通过调整unit number实现租户扩缩容
1.设置租户内的负载均衡策略,不用重启立即生效
show parameters like '%enable_transfer%';
SELECT * FROM GV$OB_PARAMETERS WHERE NAME LIKE '%enable_transfer%';
ALTER SYSTEM SET enable_rebalance = true TENANT = 'mq_t1'; =all_user开启所有用户租户
ALTER SYSTEM SET enable_transfer = true TENANT = 'mq_t1';
ALTER SYSTEM SET enable_rebalance = true; oracle和mysql租户设置
2.调整unit number
ALTER RESOURCE TENANT mq_t1 UNIT_NUM = 2;
SELECT * FROM oceanbase.DBA_OB_TENANT_JOBS WHERE JOB_TYPE='ALTER_RESOURCE_TENANT_UNIT_NUM' AND TENANT_ID=1004;查看job
ALTER RESOURCE TENANT mq_t1 UNIT_NUM = 1 DELETE UNIT_GROUP =(1006);指定unit_group调小9.修改资源池属性
ALTER RESOURCE POOL mq_pool_01 UNIT_NUM=2; 未分配给租户时可以使用
ALTER RESOURCE TENANT mq_t1 UNIT_NUM=2; 分配给租户时使用
ALTER RESOURCE POOL mq_pool_01 ZONE_LIST=('zone1','zone2','zone3');
ALTER RESOURCE POOL MERGE ('pool0','pool1','pool2') INTO ('pool3');合并资源池
ALTER RESOURCE POOL pool1 SPLIT INTO ('pool10','pool11','pool12') ON ('z1','z2','z3');分裂资源池
DROP RESOURCE POOL mq_pool_02; 删除资源池
10.修改租户属性
ALTER TENANT mq_t1 PRIMARY_ZONE='zone1,zone2,zone3';
ALTER TENANT mq_t1 LOCALITY="FULL{1}@zone1, FULL{1}@zone2,FULL{1}@zone3";修改副本
ALTER TENANT mq_t1 RESOURCE_POOL_LIST =('pool1', 'pool2') ;修改资源池列表
11.锁定租户
ALTER TENANT mq_t1 LOCK;
ALTER TENANT mq_t1 UNLOCK;
12.删除租户
drop tenant mq_t1;
show recyclebin;
FLASHBACK TENANT mq_t1 TO BEFORE DROP; 恢复
13.重命名租户
ALTER TENANT mq_t1 RENAME GLOBAL_NAME TO mq_t2;
14.管理资源规格
资源单元可以理解为服务器资源的使用模板
ALTER RESOURCE UNIT unit1 MAX_CPU 15, MEMORY_SIZE '20G', LOG_DISK_SIZE '4G';
DROP RESOURCE UNIT unit1;




