首批通过分布式安全可靠测评,为关键业务系统打造
大表建全局索引失败,原因是临时文件元数据内存超限
更新时间:2026-05-22 08:56
适用版本
OceanBase 数据库 V2.x、V3.x 版本。
问题现象
创建索引失败,报内存用满的错误 -4013。
[2023-11-04 18:42:46.049304] INFO [RS] ob_global_index_builder.cpp:2777 [24079][0][Y0-0000000000000000-0-0] [lt=5] [dc=0] on build single replica reply(index_table_id=1100611139454958, ret_code=-4013, snapshot=1699076737912722)
问题原因
创建索引 SORT 数据需要使用临时文件。临时文件元数据 TmpPageCache 达到内存使用限制。
- V2.x、V3.x 版本中为固定上限,15G。在建索引场景下,临时空间超过 210 万个宏块左右会触发该问题。
- V4.x 版本上该限制为租户内存的 70%。
解决方法
在 OceanBase 数据库 V2.x、V3.x 版本,无法调整 15G 的内存上限,可以通过将单分区全局索引可以改成多分区规避该问题。