OceanBase
  • 产品
  • 解决方案
  • 客户
  • 合作伙伴
  • 资源与服务
  • 文档
  • 社区
云控制台登录 / 注册
  • 免费试用
OceanBase AI 数据平台

基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。

一体化能力

TP 事务处理

关键业务稳定运行,保障数据零丢失

AP 实时分析

事务分析一体,驱动智能决策与运营

AI 现代负载

统一多模态数据,支撑生产级应用

关键产品
OceanBase 分布式数据库

首批通过安全可靠测评,面向关键业务

OceanBase 集中式数据库

集中式架构,兼具性能与成本优势

OceanBase AI 数据库

面向 AI 应用与 Agent 的多模数据库

OceanBase AI 湖库

湖库一体的 AI 多模态数据系统

OceanBase DataPilot

企业级 AI 数据分析 Agent

OceanBase Agentbase

企业级 Agent 后端基础设施

OceanBase OAgent

数据库 AI 运维 Agent

OB Cloud

一体化云数据库,提供多云一致体验

OceanBase 数据库一体机

软硬一体,极致性能与高可靠性保障

OceanBase AI 一体机

开箱即用的 AI 数据库一体机

OMA 迁移评估工具

全链路数据库迁移评估

OMS 数据迁移工具

一站式数据传输与同步

OCP 运维管理工具

数据库全生命周期管理

ODC 开发者工具

数据库开发与管控协同

OAS 自治服务工具

数据库智能诊断与自治

通用场景
全场景业务系统 OLTP
实时分析混合负载
异地多活
多基础设施部署
一站式传统数据库升级
混合云部署
一库多芯软硬件混合部署
分布式数据库单机部署
大存储类数据库降本
冷数据归档降本
多实例资源整合
分库分表一体化升级
高并发场景
数据中台
行业解决方案
国有大行和股份制银行核心系统解决方案
区域性银行核心系统解决方案
寿险核心系统解决方案
产险核心系统解决方案
资管交易类系统解决方案
资管 TA 清算类系统解决方案
运营商核心系统解决方案
人社核心系统解决方案
电力核心系统解决方案
行业专区
银行专区

助力银行完成各类核心业务系统升级

保险专区

寿险、产险核心系统升级的更佳选择

零售专区

助力200+零售行业客户规模化落地

DB 大咖说
OceanBase客户-爱奇艺爱奇艺

百亿级卡券业务的“单库双擎”架构升级

OceanBase客户-四川银行四川银行

800个测试用例选定分布式数据库

OceanBase客户-太平洋保险太平洋保险

先难后易,核心系统数据库升级复盘

行业案例
OceanBase客户-交通银行交通银行

核心数据库的“分布式革命”

OceanBase客户-中国移动中国移动

B域核心CRM&BOSS近乎零改造分布式升级

OceanBase客户-理想理想

打造领先的智能制造系统和自动驾驶体验

演讲实录
OceanBase客户-中国联通中国联通

集团应用分布式数据库覆盖B/O/M域

OceanBase客户-国泰海通国泰海通

智能推送系统稳定支撑单日亿级消息处理量

OceanBase客户-中国联合航空中国联合航空

中国首款机票盲盒背后的数据库力量

用户实践
OceanBase客户-北京银行北京银行

最快速度完成40余套系统国产数据库升级

OceanBase客户-VIVOVIVO

替换 MySQL 分库分表,探索成本效益最优

OceanBase客户-滴滴滴滴

数据库大规模运维体系建设及落地实践

合作伙伴
合作伙伴类型
联合解决方案
产业生态伙伴
经销商伙伴
技术服务伙伴
培训认证伙伴
生态联合解决方案
神州信息 x OceanBase 银行核心系统
长亮科技 x OceanBase 新核心系统
中电金信 x OceanBase 金融分布式核心系统
天阳科技 x OceanBase 贷记卡方案
易诚互动 x OceanBase 手机银行方案
恒生 x OceanBase UF3.0/O45/TA/估值方案
商业发行版
云树®数据库软件 ActionDB
服务
支持与服务
提交工单
软件下载
OceanBase 企业版
OceanBase 社区版
OB Cloud
学习
培训与认证
在线课堂
在线体验
开发者
开发者中心
资料
行业报告与白皮书
官方博客
年度发布会资料
开发者大会资料
oceanbase白皮书

金融核心系统数据库升级路径与场景实践

oceanbase白皮书

人社关键业务数据库一体化升级实践

产品文档
oceanbaseOceanBase 数据库
数据库一体机
oceanbaseOceanBase AI 数据库
工具与组件
oceanbaseOB Cloud 云数据库
驱动和中间件
快速上手
OceanBase 数据库
OB Cloud 云数据库
知识库
汇聚常见产品使用问题案例
在线体验

Demo与实验,感受 OceanBase 的核心能力与应用场景

OceanBase 最佳实践
了解 OceanBase 分布式数据库的架构与系统原理
技术博客

技术解析 | 用户实践 | 社区月报

在线课堂

电子书 |视频课程|在线培训

Developer Hub
应用开发Demo | 数据开发与集成工具
问答论坛

快速答疑 | 常见问题 | 技术交流

社区活动

Meetup | 技术公开课

GitHub

查看源码 | 贡献代码 | 建议反馈

加入社区

社区组织 | 社区用户贡献 |开发者贡献

进入社区首页
oceanbase数据库大赛

第六届OceanBase数据库大赛

oceanbase免费课程

《Easy Data x AI》:面向所有 AI 爱好者的 Data 与 AI 基础知识入门教程

切换语言
  • 中文站 - 简体中文
  • International - English
  • 日本站 - 日本語
文档反馈
  1. 文档中心
  2. OceanBase 数据库
  3. 分布式版
  4. V4.2.4
  5. 参考指南
  6. 系统管理
  7. 内存管理
  8. 租户内部内存管理
分布式版-V4.2.4
  • What's New
  • 简介
  • 快速上手
  • 应用开发
  • 部署数据库
  • 数据迁移
  • 管理数据库
  • 参考指南
    • 系统原理
    • 系统管理
      • 配置管理
      • 存储管理
      • 内存管理
        • 内存管理概述
        • 内存结构
        • 数据库内存上限
        • 系统内部内存管理
        • 租户内部内存管理
        • 执行计划缓存内存管理
        • 基于常态化 Memleak 的内存泄露诊断机制
        • 查看内存的使用信息
        • 常见内存问题
      • 进程管理
      • 磁盘管理
    • 数据库对象管理
    • 数据库设计规范和约束
    • SQL 参考
    • 系统视图
    • 配置项和系统变量
    • 错误码
    • 性能调优
    • 性能测试
    • 数据库代理
    • 驱动
    • 平台产品
    • 组件 & 工具
  • 常见问题
  • 版本发布记录
  • 术语
  1. 文档中心
  2. OceanBase 数据库
  3. 分布式版
  4. V4.2.4
  5. 参考指南
  6. 系统管理
  7. 内存管理
  8. 租户内部内存管理

租户内部内存管理

更新时间:2025-07-17 16:27:31

github-fill编辑
编组分享

内存分配

系统租户

系统租户是 OceanBase 数据库的集群管理员为安装 OceanBase 数据库时自动创建。V4.2.1 版本前,系统租户实际可使用的内存上限为 sys_unit_config.memory_size。从 V4.2.1 版本开始,系统租户实际可使用的内存上限为:hidden_sys_memory + sys_unit_config.memory_size。

其中:

  • sys_unit_config.memory_size 的值由资源规格 sys_unit_config 中的 memory_size 决定。sys_unit_config 是系统租户默认的资源规格,其默认的内存资源为最小资源。由于系统租户也是一个正常的租户,故可以通过 ALTER RESOURCE 语句修改 sys_unit_config 中 memory_size 的值。

  • hidden_sys_memory 的值由隐藏配置项 _hidden_sys_tenant_memory 控制。隐藏配置项 _hidden_sys_tenant_memory 的默认值为 0G,表示系统会按照一定的规则进行自适应分配 hidden_sys_memory 的值。不建议修改隐藏配置项 _hidden_sys_tenant_memory 的值。

用户租户

用户租户内存由租户创建 Unit 时其 memory_size 的大小定义的,memory_size 为用户租户的整体内存大小,其内存包含用户租户本身的内存和其对应 Meta 租户的内存。在创建用户租户时,其允许创建的最小内存由隐藏配置项 __min_full_resource_pool_memory 控制,其默认值为 5G,取值范围为 [1073741824,+∞)。

用户租户本身的内存和其对应的 Meta 租户的内存可以分为装载增量数据的 MemStore 以及 KVCache 缓存。关于装载增量数据的 MemStore 的详细内容,参见 不可动态伸缩的内存管理,关于 KVCache 缓存的详细内容,参见 可动态伸缩的内存管理。

Meta 租户

Meta 租户的内存资源不支持共享,Meta 租户和用户租户的内存资源需要隔离。默认 Meta 租户占整体租户规格的 10%。为了保证 Meta 租户正常运行,Meta 租户内存资源规格最小为 512M,不设最大值。整体租户内存规格减去 Meta 租户内存规格即为用户租户的内存规格。整体租户规格最小值调整为 1G。下面举例说明:

  • 租户规格大于等于 10G 时,Meta 租户和用户租户内存规格比例为 1:9。

  • 租户规格大于等于 2G 时,Meta 租户的内存规格固定为 1G,剩余资源给用户租户。

  • 租户规格小于 2G 时,Meta 租户固定分配 512M,剩余资源给用户租户。

  • 租户规格最小 1G,Meta 租户占用 512M,用户租户占用 512M。

内存管理

OceanBase 数据库把租户内部的内存总体上分为以下两个部分:

  • 不可动态伸缩的内存

  • 可动态伸缩的内存——KVCache

其中,不可动态伸缩的内存主要给保存数据库增量更新的 MemStore 使用,可动态伸缩的内存主要由 KVCache(含 row_cache、schema_cache 等)进行管理。

除此之外,还有很多内存组件,包括 Plan Cache(执行计划缓存)、SQL Area(SQL 执行期内存)、选举动作等,都要占用一定量的内存。您可以通过查询 oceanbase.GV$OB_MEMORY 视图来获取所有内存组件的使用情况。

不可动态伸缩的内存管理

目前与不可动态伸缩内存相关的配置只有 memstore_limit_percentage 和 ob_sql_work_area_percentage,前者表示租户的 MemStore 部分最多占租户总内存上限的百分比,后者表示 SQL 阻塞算子工作区内存占用上限。

租户的写入或者更新会增加 MemStore 的内存使用,当租户的 MemStore 部分内存到达上限以后,后续的写入或者更新操作将会被拒绝。

OceanBase 数据库会根据 MemStore 的内存使用比例决定何时进行转储或者合并释放 MemStore 的内存,该比例由配置项 freeze_trigger_percentage 控制,表示当 MemStore 内存占用到达其上限的百分比后就进行冻结(转储的前置动作),默认值为租户 MemStore 内存上限的 20%。

可动态伸缩的内存管理

可动态伸缩的 KVCache 会尽量使用除去不可动态伸缩后租户的全部内存,当租户内存满时,会优先从 KVCache 中淘汰未被引用的内存来使用。

OceanBase 数据库将绝大多数的 KV 格式的缓存统一在了 KVCache 中进行管理,KVCache 支持动态伸缩、不同类型 Cache 的优先级控制以及智能的淘汰机制。

KVCache 一般不需要配置,特殊场景下可以通过参数控制各种 Cache 的优先级,优先级高的 Cache 比优先级低的 Cache 更容易被保留在 Cache 中。

用于控制不同类型 Cache 的优先级的参数如下表所示。参数值越大表示优先级越高。

参数 含义
tablet_ls_cache_priority tablet_ls_cache 在缓存系统中的优先级。
index_block_cache_priority index_block_cache 在缓存系统中的优先级。
user_block_cache_priority user_block_cache 在缓存系统中的优先级。
user_row_cache_priority user_row_cache 在缓存系统中的优先级。
bf_cache_priority Bloom Filter 在缓存系统中的优先级。
fuse_row_cache_priority fuse_row_cache 在缓存系统中的优先级。
opt_tab_stat_cache_priority opt_tab_stat_cache 在缓存系统中的优先级。

KVCache 中不同类型的 Cache 的信息可以通过查询 oceanbase.GV$OB_KVCACHE 视图获得。其中 sys 租户和普通租户的重要组成部分略有不同:

  • sys 租户上常见的 Cache 种类

    类别 说明
    schema_cache 存放用户的 Schema 信息,用于提供 SQL 及系统正常运行所依赖的数据库对象的元信息。
    tablet_table_cache 缓存 Tablet 中 schema version 和 table id 的对应关系。
    vtable_cache 缓存 Table 的 Location 信息。
    index_block_cache 缓存微块的 Index,加速微块数据的访问。
    user_block_cache 缓存微块数据,由于微块可能通过压缩算法进行压缩,为了提升查询性能,缓存的是解压后的微块数据。
    user_row_cache 缓存某一个 Table 中的热点行数据。
    bf_cache 缓存为点查结果为空且超过一定次数的宏块建立的 Bloomfilter,用于提高空查询的过滤效率。
    fuse_row_cache 缓存行的快照点数据,用于提高点查询性能,并且可以避免因转储、合并导致的缓存失效问题。
    opt_table_stat_cache 缓存某一个分区的统计信息,例如行数、宏块数、微块数等。
    opt_column_stat_cache 缓存分区中某一列的统计信息,例如空值数、非空值数、最大值、最小值等。
  • 普通租户上常见的 Cache 种类

    类别 说明
    index_block_cache 缓存微块的 Index,加速微块数据的访问。
    user_block_cache 缓存微块数据,由于微块可能通过压缩算法进行压缩,为了提升查询性能,缓存的是解压后的微块数据。
    user_row_cache 缓存某一个 Table 中的热点行数据。
    bf_cache 缓存为点查结果为空且超过一定次数的宏块建立的 Bloomfilter,用于提高空查询的过滤效率。
    fuse_row_cache 缓存行的快照点数据,用于提高点查询性能,并且可以避免因转储、合并导致的缓存失效问题。
    tmp_block_cache 缓存临时文件,作为写缓冲区以及写缓存。
    tmp_page_cache 缓存临时文件,作为读缓存。
    opt_table_stat_cache 缓存某一个分区的统计信息,例如行数、宏块数、微块数等。
    opt_column_stat_cache 缓存分区中某一列的统计信息,例如空值数、非空值数、最大值、最小值等。

本文目录

内存分配系统租户用户租户Meta 租户内存管理不可动态伸缩的内存管理可动态伸缩的内存管理
有帮助
无帮助
反馈
AI

OceanBase

OceanBase 海扬数据库始创于 2010 年,是完全自主研发的数据库公司。2020年开始独立商业化运作,历经15年大规模核心场景验证,目前是中国数据库的领军企业之一。从分布式数据库到 AI 数据库,为企业提供安全、稳定、可扩展的数据底座,推动数据基础设施全面拥抱 AI 时代。

关于我们

关于 OceanBase最新动态资质荣誉客户专家委员会招贤纳士合作伙伴年度发布会开发者大会

资源与服务

支持与服务文档知识库软件与工具下载培训与认证在线体验数据库专题视频

社区

快速上手开发者中心博客活动学习问答GitHub

数据库百科

分布式数据库国产数据库OLTP 数据库OLAP 数据库HTAP 数据库数据库向量数据库向量检索

联系我们

服务热线:
400-109-0633
商务咨询
培训认证技术支持媒体合作
京公网安备11010802047223号京公网安备11010802047223号
京ICP备20024574号-1
合字B1.B2-20250395
网站服务协议隐私协议安全响应协议
OceanBase 版权所有 © 2026 基础资源和备案服务由阿里云提供