---
title: 删租户存在较大的内存泄漏的原因和解决方法-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 删租户存在较大的内存泄漏的原因和解决方法相关的常见问题和使用技巧，帮助您快速解决 删租户存在较大的内存泄漏的原因和解决方法的难题。
---
切换语言

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

划线反馈

# 删租户存在较大的内存泄漏的原因和解决方法

更新时间：2026-05-08 03:41

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

## 问题现象

租户删除后多个模块存在泄漏（租户内存泄漏及 500 租户内存泄漏）。

## 问题诊断

### 事前诊断

#### 功能适用性

仅适用于 OceanBase 数据库 V4.x 版本。

这是涉及多个模块的系统性问题，特点是租户删除(或 unit 迁出)后多个模块存在泄漏。可通过 SQL 检查：

```shell
obclient > select distinct tenant_id from __all_virtual_memory_info where tenant_id >= 1000 and tenant_id not in (select tenant_id from __all_tenant) and hold > 0;

```

此 SQL 若长期有数据返回，则说明问题已经存在，注意两点：

- 短暂有数据输出是合理的，只有长时间保持才说明问题。
 - 只要有删租户即会出现该现象，只要总次数不大泄漏量不高，通常不需要处理。

### 事后诊断

#### 功能适用性

适用于 OceanBase 数据库所有版本。

查看每个节点的泄漏量。

- 方法一：

  ```shell
  obclient > select svr_ip,svr_port,sum(hold) from __all_virtual_memory_info where tenant_id not in (select tenant_id from __all_tenant) and tenant_id > 1000 group by 1,2;

  ```

  返回结果如下：

  ```shell
  +-----------------+----------+-----------+
  | svr_ip          | svr_port | sum(hold) |
  +-----------------+----------+-----------+
  | xxx.xxx.xxx.xxx |     2882 |  52120992 |
  +-----------------+----------+-----------+

  ```
 - 方法二：

  ```shell
  obclient > select svr_ip,svr_port, sum(hold) from (select a.svr_ip as svr_ip,a.svr_port as svr_port,a.hold as hold,b.unit_id as unit_id from __all_virtual_memory_info a left join (select a.unit_id,a.svr_ip , a.svr_port,b.tenant_id from __all_unit a, __all_resource_pool b where a.resource_pool_id = b. resource_pool_id and b.tenant_id != -1) b on a.svr_ip= b.svr_ip and a.svr_port=b.svr_port and a.tenant_id=b.tenant_id where a.tenant_id > 1000 and unit_id is NULL) group by 1,2;

  ```

  返回结果如下：

  ```

## 问题原因

删租户为非常态化的生产操作，频率也不高，一般不会考虑租户级别的资源回收，因此此处存在一些缺陷。

## 问题的风险及影响

会出现内存不足、OOM 等问题，影响节点可用性。

## 影响的版本

OceanBase 数据库 V4.1 之前所有版本。

## 解决方法及规避方式

- 解决方法

  重启泄漏严重的 observer 进程。
 - 规避方式

  降低删租户次数。

上一篇

[分布式计划执行时中间结果占用内存过大](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000426769)

下一篇

[RS 日志大量报错：4388 unexpected internal error happen.. file="ob_malloc_allocator.cpp"-4388 invalid tenant id](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000001095266) ![有帮助](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) 咨询热线
