---
title: migrate unit 报错：-4013，分配内存大于 4G-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于migrate unit 报错：-4013，分配内存大于 4G相关的常见问题和使用技巧，帮助您快速解决migrate unit 报错：-4013，分配内存大于 4G的难题。
---
切换语言

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

划线反馈

# migrate unit 报错：-4013，分配内存大于 4G

更新时间：2026-06-10 01:56

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

## 适用版本

OceanBase 数据库 V2.x、V3.x 版本。

## 问题描述

Migrate unit 任务在 `__all__rootservice_event_history` 信息表中一直报错 `-4013`，查看日志发现如下告警：`single alloc size large than 4G is not allowed`。

```shell
[2023-04-12 03:43:53.286988] WARN  alloc (ob_tenant_ctx_allocator.h:125) [23913][0][YB42C0A82562-0005F64AEFA9985E-0-0] [lt=10] [dc=2815] [OOPS] alloc failed reason: single alloc size large than 4G is not allowed(alloc_size: 6706692096)

```

## 问题原因

因为 Migrate unit 在 OceanBase 小租户（unit num 等于 1，primary_zone 单节点）场景下存在批量优化（可以观察到 `__all_virtual_rebalance_task_stat` 记录的 `is_scheduled` 字段值都是 `YES`），会一次性调度所有副本的任务。当副本数量过多时，migrate task 申请的 500 租户内存超 4G 就会报错。

#### 注意

`__all_virtual_rebalance_task_stat`：记录当前正在进行的负载均衡任务。

## 解决方法

可以通过设置 `primary_zone` 打散（主要参考 `__all_tenant` 表的 `primary_zone` 字段的值）来将租户变为非小租户，之后会按照 PG 维度进行调度，打散命令如下。

```shell
obclient> alter tenant <tenant_name> primary_zone='zone_a,zone_b,zone_c';

```

如果打散 primary_zone 造成严重的性能问题，可以将 `enable_auto_leader_switch` 关闭后，再打散primary_zone。这样既将租户变为非小租户，又不会实际变动 leader 的分布。关于`enable_auto_leader_switch` 关闭的语句如下。

```shell
obclient> alter system set enable_auto_leader_switch='False';

```

上一篇

[关闭负载均衡的情况下添加 Server 发生 Unit 自动迁移](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207662)

下一篇

[某个 Zone 上 Unit Migrate 耗时长](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000210132) ![有帮助](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) 咨询热线
