首批通过分布式安全可靠测评,为关键业务系统打造
OceanBase 数据库内 SQL 执行出现 size overflow,日志出现 thread count reach limit 的原因和解决方法
更新时间:2026-05-29 08:46
问题现象
OceanBase 数据库集群内 SQL 执行出现如下异常。

伴随出现如下日志。
observer.log.20240830094855:[2024-08-30 09:46:56.888328] ERROR [LIB] start (thread.cpp:97) [56471][0][xxxxx-xxxxx-xxxxx-xxxxx] [lt=12] [dc=0] thread count reach limit(ret=-4019, current count=3968) BACKTRACE:0xf51231f 0x50e752f 0x5128aff 0x512873f 0x51285f8 0x50efa24 0xf3ebae1 0xf3eb747 0xf3eaf61 0xf3eac69 0xf3eb203 0xc625a72 0xc625381 0xc50a8b1 0xc50570a 0xc4eac26 0xc4ec8f7 0x4f4472f 0xb8c71f1 0x4ec9c90 0xb8c4d31 0x4ec58f6 0xb8c52a7 0xf3f17f3 0xf3f164f 0xf6901df
问题原因
OceanBase 数据库是一个单进程多线程的数据库,默认情况下该集群内只允许创建 4096 个线程(可以通过参数修改),当线程已经达到上限后再继续创建时就会出现此类异常,导致此类异常的原因主要 PX 线程创建后未释放导致,OceanBase 数据库的 PX 线程各个租户是隔离的,当某个租户创建了过多的 PX 线程后可能会导致进程接近上限,其他租户继续创建时就会出现此类异常。
问题的风险及影响
并行执行可能会出现异常。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
适用版本
OceanBase 数据库 V2.x、V3.x、V4.x 版本。
解决方法
合理配置各租户内 PX 线程的使用量。