首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >零基础OceanBase数据库入门(3):创建租户

零基础OceanBase数据库入门(3):创建租户

作者头像
俊才
发布2026-04-13 17:00:11
发布2026-04-13 17:00:11
720
举报
文章被收录于专栏:数据库干货铺数据库干货铺

租户是OceanBase多租户架构的核心,相当于传统数据库的独立实例,租户间资源隔离、数据互不干扰,今天就跟着官方demo流程,从零创建一个可用的MySQL模式租户。

一、OceanBase租户是什么?

简单说,OceanBase的租户 = MySQL的独立实例。

  • 一套OB集群可创建多个租户,每个租户独占CPU、内存、磁盘等资源,互不影响;
  • 租户支持MySQL兼容模式和Oracle兼容模式,我们用all-in-one部署的社区版仅支持MySQL模式;
  • 创建租户有固定流程:资源规格 → 资源池 → 租户,三步缺一不可。

二、 实操演示

1. 连接系统租户

创建租户必须用sys租户(系统管理员租户)操作,先连接到集群:

代码语言:javascript
复制
# 连接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租户,我们先查看:

代码语言:javascript
复制
SELECT * FROM DBA_OB_UNIT_CONFIGS;

2.2 创建自定义资源规格

创建名为s1_unit_config的规格,配置:1核CPU、2G内存、6G日志盘:

代码语言:javascript
复制
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;

关键参数说明:

  • MAX_CPU/MIN_CPU:CPU上下限,必选;
  • MEMORY_SIZE:内存大小,最小1G,OB4.0+不支持内存超卖;
  • LOG_DISK_SIZE:日志盘,不填默认是内存的3倍,最小2G。

2.3 验证创建结果

再次运行脚本查看

代码语言:javascript
复制
SELECT * FROM DBA_OB_UNIT_CONFIGS ;

3. 创建资源池(Resource Pool)

资源池绑定资源规格,指定资源分布的Zone,是资源规格与租户之间的桥梁。

3.1 查看默认资源池

系统自带sys_pool,供sys租户使用:

代码语言:javascript
复制
SELECT * FROM DBA_OB_RESOURCE_POOLS;

3.2 创建自定义资源池

创建名为mq_pool_01的资源池,绑定s1_unit_config,部署在zone1:

代码语言:javascript
复制
CREATE RESOURCE POOL mq_pool_01
UNIT='s1_unit_config',
UNIT_NUM=1,
ZONE_LIST=('zone1');

关键参数说明:

  • UNIT:绑定的资源规格名称
  • UNIT_NUM:单Zone的Unit数量,小于节点数
  • ZONE_LIST:资源池部署的Zone,单机环境默认zone1

3.3 验证创建结果

运行脚本查看创建结果

代码语言:javascript
复制
SELECT * FROM DBA_OB_RESOURCE_POOLS WHERE NAME = 'mq_pool_01';

4. 创建租户(Tenant)

资源池就绪后,即可创建租户,指定资源池、兼容模式、连接白名单。

4.1 查看现有租户

默认只有sys租户:

代码语言:javascript
复制
SELECT * FROM DBA_OB_TENANTS;

obshell页面上也可以看到

4.2 创建MySQL模式租户

创建名为mq_t1的租户,允许所有IP连接,绑定mq_pool_01:

代码语言:javascript
复制
CREATE TENANT IF NOT EXISTS mq_t1
PRIMARY_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 验证租户创建

代码语言:javascript
复制
SELECT * FROM DBA_OB_TENANTS WHERE TENANT_NAME = 'mq_t1';

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

5. 登录新租户+修改默认密码

租户创建后,默认管理员密码为空,必须及时修改。

5.1 退出sys租户,登录新租户

代码语言:javascript
复制
# 退出当前连接
exit
# 登录新租户mq_t1
obclient -h127.0.0.1 -P2881 -uroot@mq_t1 -A

5.2 修改root密码

代码语言:javascript
复制
# 修改密码为123456(生产环境用复杂密码)
ALTER USER root IDENTIFIED BY '123456';

5.3 用新密码重新登录

代码语言:javascript
复制
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几乎无差别。下一篇我们将学习在租户内创建数据库与表,彻底完成从部署到使用的全流程。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据库干货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档