---
title: "memory_limit - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: memory_limit 说明 该配置项从 V1.4 版本开始引入。 功能描述 memory_limit 用于设置 OBServer 可用的总内存大小。 OBServer 上 memory_limit 设置生效需要同时满足两个条件： 500 租户的预留内存需要不小于实际占用内存。 memory_limit 取值需高于…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.6.0

# memory_limit

更新时间：2026-05-25 15:11:37

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/700.reference/800.configuration-items-and-system-variables/100.system-configuration-items/300.cluster-level-configuration-items/13500.memory_limit.md)

#### 说明

该配置项从 V1.4 版本开始引入。

## 功能描述

`memory_limit` 用于设置 OBServer 可用的总内存大小。

OBServer 上 `memory_limit` 设置生效需要同时满足两个条件：

- 500 租户的预留内存需要不小于实际占用内存。
 - `memory_limit` 取值需高于 `system_memory` 和 Unit 已分配内存之和。

在不满足以上限制条件时，设置 `memory_limit` 不会报错，也不生效。

## 权限要求

- 查询配置项

  `sys` 租户和所有用户租户均可以使用 `SHOW PARAMETERS` 语句或视图 `GV$OB_PARAMETERS` 查询该配置项。
 - 修改配置项

  仅 `sys` 租户可以修改该配置项，用户租户不能修改该配置项。

## 属性说明

| **属性** | **描述** |
| --- | --- |
| 参数类型 | Capacity |
| 默认值 | 0，单位为 MB。 |
| 取值范围 | [1G, +∞)   #### 说明    - 该配置项从 V4.1.0 版本开始取值范围由 [4G, +∞) 调整为 [1G, +∞)。 - 仲裁服务模式下最低取值为 1G, 非仲裁服务模式下最低取值为 4G。 |
| 是否可修改 | 是，支持通过 `ALTER SYSTEM SET` 语句修改。 |
| 是否重启 OBServer 节点生效 | 否，设置后立即生效。 |

## 使用说明

- `memory_limit` 的默认值为 `0`。如果该值不为 `0`，则系统会忽略 `memory_limit_percentage` 的设置而优先使用 `memory_limit` 配置的值。例如，一台物理机的内存为 100 GB，`memory_limit_percentage` 设置为 `80`，表示使用 80% 的内存，而 `memory_limit` 参数设置为 `'90G'`，则实际物理机上 OceanBase 数据库可分配的内存使用 `memory_limit` 的配置，即 90 GB。有关 `memory_limit_percentage` 的详细信息请参见 [memory_limit_percentage](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685488)。
 - `memory_limit` 的默认单位为 MB。例如，`memory_limit='40G'` 表示设置 OceanBase 数据库进程的使用内存上限是 40 GB。由于默认单位为 MB，则 `memory_limit=40960` 与 `memory_limit='40G'` 设置的值相同。
 - `memory_limit` 的值目前无上限。

     - 如果设置的内存最大上限超过了实际的物理内存总和，则会导致系统中其他按总内存计算的值偏大。
     - 如果希望限制运行中的 OceanBase 数据库的内存大小，可以直接修改 `memory_limit` 的值，使其达到预期。设置后，后台参数 Reload 线程会使其动态生效，无需重启。但是在设置时，需要保证 `memory_limit` 的值小于系统总的值。

      #### 注意

      `memory_limit` 的值必须大于 OBServer 节点实际已使用的内存。

## 配置示例

- 例如设置 OBServer 可用的总内存为 32 G，命令如下：

  ```shell
  obclient> ALTER SYSTEM SET memory_limit='32G';

  ```
 - 查询当前已使用的内存数（单位为 GB）的方法如下：

  ```shell
  obclient> SELECT value/1024/1024/1024 used_gb FROM v$sysstat WHERE name LIKE '%observer memory%' AND con_id = 1 AND stat_id=140008 AND name='observer memory used size';

  ```

## 相关文档

- [数据库内存的使用](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682763)
 - [查看资源大小](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006133353)

 上一篇 下一篇 ![有帮助](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) 咨询热线
