---
title: 单 session 上 PS 句柄数量限制-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于单 session 上 PS 句柄数量限制相关的常见问题和使用技巧，帮助您快速解决单 session 上 PS 句柄数量限制的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 单 session 上 PS 句柄数量限制

更新时间：2026-05-29 08:46

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

本文介绍 OceanBase 数据库中单 session 上 PS 句柄数量的限制。

部分业务模型会打开大量的 `PS`，从而导致 OBServer 500 租户 `PsSessionInfo` 模块内存占用较大（如 20G）。原生 ORACLE 中也存在这个问题，其通过 `限制单个 session 最多可打开的 PS 数量，超限报错` 的方式来解决。OceanBase 数据库从 V3.2.4 版本开始也采用了这种方法。

从 OceanBase 数据库从 V3.2.4 版本开始，单 session 上 `PS` 句柄数量可设置上限，该上限值与 “单 session 上游标 cursor 数量” 共同使用配置项 `open_cursors` 控制（取值范围：[0,65535]，默认：50）。

当单 session 上 PS 句柄数量超过 `open_cursors` 时，OceanBase 数据库日志中会有 WARN 级别报错：`exceeds the maximum number of ps handles allowed to open on the session(ret=-5930......)`。(由于借用了 `open_cursors` 控制，所以错误码还是 -5930：maximum open cursors exceeded。)

#### 注意

- `open_cursors` 不是单 session 上 `cursor`与 `PS` 句柄`数量总和的上限，`cursor` 与 ` PS 句柄` 的数量上限是各自独立统计、控制的（如 open_cursors=100，则单 session 上 `cursor` 与 `PS句柄`各自都可打开100个）。
 - open_cursors = 0 代表不设限制，可以作为一种应急的手段。
 - 升级上来的集群，`open_cursors` 将保持原来的设置，因此请在升级前评估集群单 session 上的 `PS` 量和 `cursor` 量。

当遇到 `PS` 数量超限时，可以尝试以下方法解决：

- 当升级遇到 `PS` 数量超限时，可以设置 open_cursors = 0 来应急。
 - 当业务正常执行遇到 `PS` 数量超限时，请检查业务逻辑或确认是否为 OB 链路产品的已知缺陷。

## 适用版本

OceanBase 数据库 V3.2.4 (oceanbase-3.2.4.0-100000072022102819) 所有版本和 V4.1.0 BP3 (oceanbase-4.1.0.2-103000072023081111) 及之后的版本。

上一篇

[OceanBase 数据库的关键字可以规避吗](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000001054)

下一篇

[简单 SQL 转发执行存在远程执行计划](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000507238) ![有帮助](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) 咨询热线
