当前位置: 首页 > news >正文

【赵渝强老师】OceanBase中的租户

1

租户是一个逻辑概念。在OceanBase数据库中,租户是资源分配的单位,是数据库对象管理和资源管理的基础,对于系统运维,尤其是对于云数据库的运维有着重要的影响。租户在一定程度上相当于传统数据库的"实例"概念。租户之间是完全隔离的。在数据安全方面,OceanBase数据库不允许跨租户的数据访问,以确保用户的数据资产没有被其他租户窃取的风险。在资源使用方面,OceanBase数据库表现为租户"独占"其资源配额。总体上来说,租户(tenant)既是各类数据库对象的容器,又是资源(CPU、Memory、IO等)的容器。

image.png
点击这里查看视频讲解:【赵渝强老师】OceanBase中的租户

一个租户可以看成是一个数据库实例。OceanBase数据库在一个系统中可同时支持MySQL模式和Oracle模式两种模式的租户。用户在创建租户时,可选择创建MySQL兼容模式的租户或Oracle兼容模式的租户,租户的兼容模式一经确定就无法更改,所有数据类型、SQL功能、视图等相应地与MySQL数据库或Oracle数据库保持一致。OceanBase数据库社区版仅提供了MySQL模式的租户。

一、 OceanBase的多租户架构

OceanBase数据库采用了多租户架构。多租户架构适用于资源整合、SaaS服务等场景,同时也降低了运维复杂度。OceanBase数据库采用了单集群多租户设计,天然支持云数据库架构,支持公有云、私有云、混合云等多种部署形式。OceanBase的多租户架构如下图所示:

2

二、 租户的类型

OceanBase数据库是多租户架构。在V4.0.0版本之前,仅支持两种类型的租户:系统租户和用户租户。从V4.0.0版本开始,引入了Meta租户概念。因此,当前版本对用户可见的租户有三种类型:系统租户、用户租户以及Meta租户。

2.1 系统租户

系统租户是集群默认创建的租户,与集群的生命周期一致,负责管理集群和所有租户的生命周期。系统租户仅有一个1号日志流,仅支持单点写入,不具备扩展能力。系统租户可以创建用户表,所有的用户表和系统表数据均由1号日志流服务。系统租户的数据是集群私有的,不支持主备集群物理同步和物理备份恢复。系统租户定位于集群管理和租户管理,不提供完整的数据库功能,不推荐在生产或业务测试等场合使用。通过DBA_OB_TENANTS视图,可以查看系统租户的信息。

ob> use oceanbase;
ob> select * from dba_ob_tenants where tenant_type='sys' \G;# 输出的信息如下:
*************************** 1. row ***************************TENANT_ID: 1TENANT_NAME: sysTENANT_TYPE: SYSCREATE_TIME: 2025-03-27 19:15:03.296223MODIFY_TIME: 2025-03-27 19:15:03.296223PRIMARY_ZONE: RANDOMLOCALITY: FULL{1}@zone1PREVIOUS_LOCALITY: NULLCOMPATIBILITY_MODE: MYSQLSTATUS: NORMALIN_RECYCLEBIN: NOLOCKED: NOTENANT_ROLE: PRIMARYSWITCHOVER_STATUS: NORMALSWITCHOVER_EPOCH: 0SYNC_SCN: NULLREPLAYABLE_SCN: NULLREADABLE_SCN: NULLRECOVERY_UNTIL_SCN: NULLLOG_MODE: NOARCHIVELOG
ARBITRATION_SERVICE_STATUS: DISABLEDUNIT_NUM: 1COMPATIBLE: 4.3.5.1MAX_LS_ID: 1RESTORE_DATA_MODE: NORMAL
1 row in set (0.126 sec)

2.2 用户租户

用户租户是由用户创建的租户,对外提供完整的数据库功能,支持MySQL和Oracle两种兼容模式。用户租户支持服务能力水平扩展到多台机器上,支持动态扩容和缩容,内部会根据用户的配置自动创建和删除日志流。用户租户的数据有更强的数据保护和可用性要求,支持跨集群物理同步和物理备份恢复,典型数据包括:Schema数据、用户表数据及事务数据等。OceanBase数据库社区版仅提供了MySQL模式租户;OceanBase数据库企业版提供MySQL模式租户和Oracle模式租户。通过下面的查询语句可以获取用户租户的详细信息。

ob> use oceanbase;
ob> select * from dba_ob_tenants where tenant_type='user' \G;# 输出的信息如下:
*************************** 1. row ***************************TENANT_ID: 1016TENANT_NAME: my_tenantTENANT_TYPE: USERCREATE_TIME: 2025-04-07 13:20:51.142028MODIFY_TIME: 2025-04-07 13:21:18.355210PRIMARY_ZONE: RANDOMLOCALITY: FULL{1}@zone1PREVIOUS_LOCALITY: NULLCOMPATIBILITY_MODE: MYSQLSTATUS: NORMALIN_RECYCLEBIN: NOLOCKED: NOTENANT_ROLE: PRIMARYSWITCHOVER_STATUS: NORMALSWITCHOVER_EPOCH: 0SYNC_SCN: 1744171442450188001REPLAYABLE_SCN: 1744171442450188001READABLE_SCN: 1744171442450188000RECOVERY_UNTIL_SCN: 4611686018427387903LOG_MODE: NOARCHIVELOG
ARBITRATION_SERVICE_STATUS: DISABLEDUNIT_NUM: 1COMPATIBLE: 4.3.5.1MAX_LS_ID: 1001RESTORE_DATA_MODE: NORMAL# 提示:通过COMPATIBILITY_MODE字段可以看出my_tenant是一个MySQL模式的租户。

2.3 Meta租户

Meta租户是OceanBase数据库内部自管理的租户,每创建一个用户租户系统就会自动创建一个对应的Meta租户,其生命周期与用户租户保持一致。Meta租户用于存储和管理用户租户的集群私有数据,这部分数据不需要进行跨库物理同步以及物理备份恢复,这些数据包括:配置项、位置信息、副本信息、日志流状态、备份恢复相关信息、合并信息等。通过下面的查询语句可以获取META租户的详细信息。

ob> use oceanbase;
ob> select * from dba_ob_tenants where tenant_type='meta' \G;# 输出的信息如下:
*************************** 1. row ***************************TENANT_ID: 1015TENANT_NAME: META$1016TENANT_TYPE: METACREATE_TIME: 2025-04-07 13:20:51.140850MODIFY_TIME: 2025-04-07 13:21:18.229272PRIMARY_ZONE: RANDOMLOCALITY: FULL{1}@zone1PREVIOUS_LOCALITY: NULLCOMPATIBILITY_MODE: MYSQLSTATUS: NORMALIN_RECYCLEBIN: NOLOCKED: NOTENANT_ROLE: PRIMARYSWITCHOVER_STATUS: NORMALSWITCHOVER_EPOCH: 0SYNC_SCN: NULLREPLAYABLE_SCN: NULLREADABLE_SCN: NULLRECOVERY_UNTIL_SCN: NULLLOG_MODE: NOARCHIVELOG
ARBITRATION_SERVICE_STATUS: DISABLEDUNIT_NUM: 1COMPATIBLE: 4.3.5.1MAX_LS_ID: 1RESTORE_DATA_MODE: NORMAL
1 row in set (0.016 sec)
http://www.jsqmd.com/news/98515/

相关文章:

  • GPT-SoVITS安装包离线部署企业级语音系统的方案
  • AI能源效率危机:大模型能耗远超人类大脑,如何实现可持续发展?
  • 12、用户系统设置全攻略
  • LangFlow在电商商品描述生成中的实际应用
  • 基于微信小程序的农事管理系统设计(源码+lw+部署文档+讲解等)
  • KubePi:让Kubernetes集群管理变得简单直观的现代化面板
  • 从Git Commit到TensorRT镜像构建:全流程技术拆解
  • 2025年义乌美国双清包税国际物流服务推荐榜 - 呼呼拉呼
  • SGMICRO圣邦微 SGM2006-3.0XN5/TR SOT23-5 线性稳压器(LDO)
  • Qwen3-14B-Base:148亿参数如何重塑大模型效率
  • 使用Miniconda高效管理Python环境
  • 机器视觉工控一体机厂商
  • 13、系统设置全解析:从用户到管理员的全方位指南
  • 2025年六偏磷酸钠订做厂家权威推荐榜单:磷酸三钠‌/磷酸二氢钾‌/三聚磷酸钠源头厂家精选 - 品牌推荐官
  • Excalidraw日志收集方案:ELK栈整合实例
  • 2025 年 ROHS 分析仪厂家权威推荐榜:精准检测与高效合规的行业首选仪器 - 品牌企业推荐师(官方)
  • 基于Java+SpringBoot的企业进销存管理系统(源码+lw+部署文档+讲解等)
  • Directus开源数据引擎:打破传统CMS桎梏的企业级解决方案
  • 深入解析:攻防世界—lottery
  • Dify智能体平台调用GPT-SoVITS实现语音播报通知
  • 2025年评价高的不锈钢餐边柜/不锈钢衣柜最新TOP品牌厂家排行 - 品牌宣传支持者
  • 基于清华镜像的TensorFlow开发环境搭建全流程解析
  • 单片机/嵌入式修行之路 - 指南
  • 元推理框架,万法扁鹊问诊系统
  • Qwen3-14B支持哪些GPU?显存需求全解析
  • 2025年靠谱的型钢在线跟切锯切专机/铝板锯切专机用户好评厂家排行 - 品牌宣传支持者
  • Multi-Agent全面爆发!一文详解多智能体核心架构及LangGraph框架
  • GEO重大误区之六:中小企业买不起GEO
  • 制造业设备工厂如何实现8-10个SolidWorks三维设计人员共享一台高性能图形工作站
  • Python深度学习:从入门到实战