租户是OceanBase多租户架构的核心,相当于传统数据库的独立实例,租户间资源隔离、数据互不干扰,今天就跟着官方demo流程,从零创建一个可用的MySQL模式租户。
一、OceanBase租户是什么?
简单说,OceanBase的租户 = MySQL的独立实例。
-
一套OB集群可创建多个租户,每个租户独占CPU、内存、磁盘等资源,互不影响;
-
租户支持MySQL兼容模式和Oracle兼容模式,我们用all-in-one部署的社区版仅支持MySQL模式;
-
创建租户有固定流程:资源规格 → 资源池 → 租户,三步缺一不可。
二、 实操演示
- 连接系统租户
创建租户必须用sys租户(系统管理员租户)操作,先连接到集群:
ruby
# 连接sys租户(IP、端口、密码用自己部署的)[admin@ob ~]$ obclient -h127.0.0.1 -P2881 -uroot@sys -p'1K4TjgkntnXm3r2nAGLE' -Doceanbase -A
连接成功后,就可以开始三步创建租户。

- 创建资源规格(Resource Unit)
资源规格是CPU、内存、磁盘、IOPS的资源模板,定义租户能使用的资源上限,是创建租户的基础。
2.1 查看默认资源规格
系统自带sys_unit_config,用于sys租户,我们先查看:
css
SELECT * FROM DBA_OB_UNIT_CONFIGS;

2.2 创建自定义资源规格
创建名为s1_unit_config的规格,配置:1核CPU、2G内存、6G日志盘:
apache
CREATE RESOURCE UNIT s1_unit_configMEMORY_SIZE = '2G',MAX_CPU = 1, MIN_CPU = 1,LOG_DISK_SIZE = '6G',MAX_IOPS = 10000, MIN_IOPS = 10000, IOPS_WEIGHT=1;

关键参数说明:
-
MAX_CPU/MIN_CPU:CPU上下限,必选;
-
MEMORY_SIZE:内存大小,最小1G,OB4.0+不支持内存超卖;
-
LOG_DISK_SIZE:日志盘,不填默认是内存的3倍,最小2G。
2.3 验证创建结果
再次运行脚本查看
css
SELECT * FROM DBA_OB_UNIT_CONFIGS ;

- 创建资源池(Resource Pool)
资源池绑定资源规格,指定资源分布的Zone,是资源规格与租户之间的桥梁。
3.1 查看默认资源池
系统自带sys_pool,供sys租户使用:
css
SELECT * FROM DBA_OB_RESOURCE_POOLS;

3.2 创建自定义资源池
创建名为mq_pool_01的资源池,绑定s1_unit_config,部署在zone1:
makefile
CREATE RESOURCE POOL mq_pool_01UNIT='s1_unit_config',UNIT_NUM=1,ZONE_LIST=('zone1');

关键参数说明:
-
UNIT:绑定的资源规格名称
-
UNIT_NUM:单Zone的Unit数量,小于节点数
-
ZONE_LIST:资源池部署的Zone,单机环境默认zone1
3.3 验证创建结果
运行脚本查看创建结果
sql
SELECT * FROM DBA_OB_RESOURCE_POOLS WHERE NAME = 'mq_pool_01';

- 创建租户(Tenant)
资源池就绪后,即可创建租户,指定资源池、兼容模式、连接白名单。
4.1 查看现有租户
默认只有sys租户:
css
SELECT * FROM DBA_OB_TENANTS;

obshell页面上也可以看到

4.2 创建MySQL模式租户
创建名为mq_t1的租户,允许所有IP连接,绑定mq_pool_01:
sql
CREATE TENANT IF NOT EXISTS mq_t1PRIMARY_ZONE='zone1',RESOURCE_POOL_LIST=('mq_pool_01')SET OB_TCP_INVITED_NODES='%';

关键参数说明:
-
IF NOT EXISTS:避免重名报错
-
PRIMARY_ZONE:租户优先提供读写服务的Zone
-
RESOURCE_POOL_LIST:绑定的资源池,必填
-
OB_TCP_INVITED_NODES='%':允许所有IP连接,默认仅允许本机
4.3 验证租户创建
sql
SELECT * FROM DBA_OB_TENANTS WHERE TENANT_NAME = 'mq_t1';

此时obshell页面查看结果如下:

- 登录新租户+修改默认密码
租户创建后,默认管理员密码为空,必须及时修改。
5.1 退出sys租户,登录新租户
nginx
# 退出当前连接exit# 登录新租户mq_t1obclient -h127.0.0.1 -P2881 -uroot@mq_t1 -A

5.2 修改root密码
nginx
# 修改密码为123456(生产环境用复杂密码)ALTER USER root IDENTIFIED BY '123456';

5.3 用新密码重新登录
nginx
obclient -h127.0.0.1 -P2881 -uroot@mq_t1 -p'123456' -A

登录成功,说明租户完全可用!
六、小结
本文我们完成了OceanBase租户创建全流程,核心记住三步法:
-
定义资源规格(CREATE RESOURCE UNIT)
-
绑定资源池(CREATE RESOURCE POOL)
-
最终创建租户(CREATE TENANT)
另外总结一下重要注意事项:
-
社区版限制:all-in-one部署的社区版仅支持MySQL模式租户,Oracle模式需企业版;
-
资源规划:所有租户的MIN_CPU总和不能超过节点CPU总容量,避免资源不足;
-
密码安全:生产环境严禁使用空密码/简单密码,及时修改管理员密码;
-
白名单:OB_TCP_INVITED_NODES建议限定IP,不建议用%开放所有连接。
租户创建完成后,就可以在租户内创建数据库、用户、数据表,和使用MySQL几乎无差别。下一篇我们将学习在租户内创建数据库与表,彻底完成从部署到使用的全流程。
往期回顾: