租户是OceanBase多租户架构的核心,相当于传统数据库的独立实例,租户间资源隔离、数据互不干扰,今天就跟着官方demo流程,从零创建一个可用的MySQL模式租户。
一、OceanBase租户是什么?
简单说,OceanBase的租户 = MySQL的独立实例。
二、 实操演示
1. 连接系统租户
创建租户必须用sys租户(系统管理员租户)操作,先连接到集群:
# 连接sys租户(IP、端口、密码用自己部署的)
[admin@ob ~]$ obclient -h127.0.0.1 -P2881 -uroot@sys -p'1K4TjgkntnXm3r2nAGLE' -Doceanbase -A连接成功后,就可以开始三步创建租户。

2. 创建资源规格(Resource Unit)
资源规格是CPU、内存、磁盘、IOPS的资源模板,定义租户能使用的资源上限,是创建租户的基础。
2.1 查看默认资源规格
系统自带sys_unit_config,用于sys租户,我们先查看:
SELECT * FROM DBA_OB_UNIT_CONFIGS;
2.2 创建自定义资源规格
创建名为s1_unit_config的规格,配置:1核CPU、2G内存、6G日志盘:
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;
关键参数说明:
2.3 验证创建结果
再次运行脚本查看
SELECT * FROM DBA_OB_UNIT_CONFIGS ;
3. 创建资源池(Resource Pool)
资源池绑定资源规格,指定资源分布的Zone,是资源规格与租户之间的桥梁。
3.1 查看默认资源池
系统自带sys_pool,供sys租户使用:
SELECT * FROM DBA_OB_RESOURCE_POOLS;
3.2 创建自定义资源池
创建名为mq_pool_01的资源池,绑定s1_unit_config,部署在zone1:
CREATE RESOURCE POOL mq_pool_01
UNIT='s1_unit_config',
UNIT_NUM=1,
ZONE_LIST=('zone1');
关键参数说明:
3.3 验证创建结果
运行脚本查看创建结果
SELECT * FROM DBA_OB_RESOURCE_POOLS WHERE NAME = 'mq_pool_01';
4. 创建租户(Tenant)
资源池就绪后,即可创建租户,指定资源池、兼容模式、连接白名单。
4.1 查看现有租户
默认只有sys租户:
SELECT * FROM DBA_OB_TENANTS;
obshell页面上也可以看到

4.2 创建MySQL模式租户
创建名为mq_t1的租户,允许所有IP连接,绑定mq_pool_01:
CREATE TENANT IF NOT EXISTS mq_t1
PRIMARY_ZONE='zone1',
RESOURCE_POOL_LIST=('mq_pool_01')
SET OB_TCP_INVITED_NODES='%';
关键参数说明:
4.3 验证租户创建
SELECT * FROM DBA_OB_TENANTS WHERE TENANT_NAME = 'mq_t1';
此时obshell页面查看结果如下:

5. 登录新租户+修改默认密码
租户创建后,默认管理员密码为空,必须及时修改。
5.1 退出sys租户,登录新租户
# 退出当前连接
exit
# 登录新租户mq_t1
obclient -h127.0.0.1 -P2881 -uroot@mq_t1 -A
5.2 修改root密码
# 修改密码为123456(生产环境用复杂密码)
ALTER USER root IDENTIFIED BY '123456';
5.3 用新密码重新登录
obclient -h127.0.0.1 -P2881 -uroot@mq_t1 -p'123456' -A
登录成功,说明租户完全可用!
六、小结
本文我们完成了OceanBase租户创建全流程,核心记住三步法:
另外总结一下重要注意事项:
租户创建完成后,就可以在租户内创建数据库、用户、数据表,和使用MySQL几乎无差别。下一篇我们将学习在租户内创建数据库与表,彻底完成从部署到使用的全流程。