---
title: OBServer 启动失败，内存分配错误 -OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 OBServer 启动失败，内存分配错误 相关的常见问题和使用技巧，帮助您快速解决 OBServer 启动失败，内存分配错误 的难题。
---
切换语言

- 简体中文
- English

划线反馈

# OBServer 启动失败，内存分配错误

更新时间：2023-11-14 03:16

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

介绍 OBServer 启动失败报内存分配错误时，如何进行问题排查并解决问题。

## 适用版本

OceanBase 数据库 V2.2.30-BP9 以前的所有版本。

## 问题现象

在使用大容量磁盘的环境中，OBServer 启动失败，错误信息如下。

```unknow
WARN alloc (ob_tenant_ctx_allocator.h:111) [29230][0][Y0-0000000000000000] [lt=5] [dc=0] oops, alloc failed, tenant_id=500 ctx_id=0 ctx_name=DEFAULT_CTX_ID ctx_hold=15315501056 ctx_limit=9223372036854775807 tenant_hold=26240372736 tenant_limit=9223372036854775807 [2020-05-20 17:54:29.025284] ERROR [LIB] ob_malloc (ob_malloc.h:49) [29230][0][Y0-0000000000000000] [lt=9] [dc=0] allocate memory fail(attr=tenant_id=500, mod_id=383, ctx_id=0, prio=0, nbyte=7247759000) BACKTRACE:0x72b9eda 0x7265405 0x416d85 0x4173a1 0x71c3847 0x5a09189 0x5a48bcb 0x5be4f04 0x46e9217 0x3fe1ee9 0x7f0f35534445 0x4042d45 [2020-05-20 17:54:29.025334] WARN ob_malloc_align (ob_malloc.cpp:115) [29230][0][Y0-0000000000000000] [lt=49] [dc=0] ob_tc_malloc allocate memory failed, alignment[32], nbyte[7247758968], tenant_id[500], mod[383].

```

## 可能原因

根据错误信息 `ERROR [LIB] ob_malloc`，可知问题为 server 租户的内存分配失败。

#### 注意

`system_memory` 用于设置系统预留内存容量。server 租户内存不受 `system_memory` 限制，使用量达到 `system_memory` 设定的阈值后仍会继续上涨。有关该参数的详细信息，参见《OceanBase 数据库 参考指南》中 **系统配置项** 章节。

对比分析，发现只有在大容量磁盘环境中存在该问题。初始化 ob_store_file 时需要申请内存，如果磁盘很大，初始化的存储文件过大（例如 130 TB 磁盘），会导致内存申请过多，出现内存不够的问题。

## 解决方法

该问题可以通过以下两种方式解决。

- 配置 `datafile_size` 或 `datafile_disk_percentage` 参数来减小存储文件的大小。

  ```unknow
  obclient> ALTER SYSTEM SET datafile_size = xxxxx;
  或
  obclient> ALTER SYSTEM SET datafile_disk_percentage = xx;

  ```

  其中，`datafile_size` 用于设置数据文件的大小；`datafile_disk_percentage` 表示占用 data_dir 所在磁盘总空间的百分比。

  有关以上两个参数的详细信息，参见《OceanBase 数据库 参考指南》中 **系统配置项** 章节。
 - 将 OceanBase 数据库升级到 V2.2.30-BP9 及以后版本即可解决。有关升级 OceanBase 数据库的方法，参见《OceanBase 数据库 升级指南》。

Previous

[OBServer 启动 IO 内存不足](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000210116)

Next

[OBServer 安装失败，磁盘未挂载](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000001001) ![有帮助](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) 咨询热线
