---
title: OceanBase 3.x 版本单机分区数限制-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OceanBase 3.x 版本单机分区数限制相关的常见问题和使用技巧，帮助您快速解决OceanBase 3.x 版本单机分区数限制的难题。
---
切换语言

- 简体中文
- English

划线反馈

# OceanBase 3.x 版本单机分区数限制

更新时间：2026-05-21 09:16

适用版本： V3.1.x、V3.2.x 内容类型：TechNote  

OceanBase 数据库 V4.0 架构之前采用分区日志流，每一个分区是一个单独的 Paxos 组。当一台 OBServer 节点包含很多分区时，Clog 主备 Keep Alive 的 RPC 开销增大，后台遍历分区的定时任务的开销增大，每个分区占用的内存增加，整个 OBServer 节点的 CPU 开销会比较高，OBServer 节点的服务能力下降；容灾场景下，系统恢复时间也会过长，影响 RPO。 ​ 目前 3.x 版本的 OceanBase 数据库的单机 partition 上限已经增加到 50w。然而当单机 partition 分区数达到 5w 以后，由于 RS 内部事务调度线程压力和内部 Schema 刷新机制，节点重启恢复时间和 DDL 执行时间已经会比正常执行 RT 高很多，所以生产中仍建议以 OCP 默认单机 partition 上限告警阈值 3w 为推荐值。

## 查询各台主机上的单机的 partition 数

可在 SYS 租户中，通过下述语句查询各台主机上的单机的 partition 数。

```shell
obclient> select svr_ip,svr_port,count(*) from oceanbase.__all_virtual_partition_table group by svr_ip,svr_port;

```

#### 注意

- 对于分区表，每个分区均会算一次 partition 数。
 - 对于索引：
     - 如果是非本地索引，会独立算 partition 数。
     - 如果是本地索引，则不会额外增加分区数

## 补充说明

除了单机上分区数限制以外，租户的最大分区数还受限于租户的资源规格。如果租户资源规格不够，在 OceanBase 数据库中创建分区的操作可能会失败，报 `ret=-5188（too many partitions）`的错误。 ​ 租户在任一 OBServer 节点上的分区数上限是根据租户资源单元的内存上限来计算的，计算公式如下：`partition_num = (max_memory - memstore_limit）/ partition_mem`。

其中：

- max_memory：租户最大内存。
 - memstore_limit：MemStore 内存。
 - partition_mem：每个分区占用的内存（系统按这个大小来估算分区总数并加以限制）。

     - 不在 partition group 的分区：168K。
     - 在 partition group 中的分区：512K。

## 适用版本

OceanBase 数据库 V3.x 版本。

Previous

[OceanBase 数据库 Oracle 模式分区表介绍](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000010174)

Next

[OceanBase 数据库为何对分区数有限制](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000098) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
