# 53000 — insufficient_resources

> PostgreSQL SQLSTATE 53000 的来源与诊断参考。
---

# 53000

## 速览 {#at-a-glance}
`53000` 是宽泛的资源不足条件。固定调用者包括后台 worker 启动、本地缓冲区耗尽和文件描述符限制，因此必须结合消息和启动/运行阶段确定资源。

<!-- BEGIN SQLSTATE FACTS: generated by scripts/generate.py; do not edit -->

| 字段 | 值 |
| --- | --- |
| SQLSTATE | `53000` |
| 条件名 | `insufficient_resources` |
| 状态 | `有效` |
| 已知存在于 | `7.4` |
| 锁定快照 | `9.0.23, 9.1.24, 9.2.24, 9.3.25, 9.4.26, 9.5.25, 9.6.24, 10.23, 11.22, 12.22, 13.23, 14.24, 15.19, 16.15, 17.11, 18.6, 19beta3` |
| 宏 | `ERRCODE_INSUFFICIENT_RESOURCES` |
| 别名 | `—` |

<!-- source facts: data/errcodes/53000.json -->
<!-- END SQLSTATE FACTS -->

## 含义 {#meaning}
类别码本身不指向某个参数：`could not register background process` 指向 worker 容量，`no empty local buffer available` 指向本地缓冲区，文件描述符变体则分别报告启动最小值或进程分配上限。

## 诊断 {#diagnosis}
记录 primary、detail/hint、阶段和服务器日志。启动失败时比较进程限制与 worker 配置；运行中则先判断是本地缓冲区、描述符、worker 槽位还是其他固定资源。

## 处理 {#response}
按消息指出的资源在平台和 PostgreSQL 限制内释放或调整，清理不用的描述符/worker 后验证配置。显式事务中若发生 `ERROR`，重试前执行 `ROLLBACK` 或 `ROLLBACK TO SAVEPOINT`；自动提交只有在指定资源可用后才能重试。服务器进程描述符检查等启动 `FATAL` 路径没有客户端事务可恢复。未定位资源前不要泛化为重启或改内存。

## 版本 {#versions}
锁定目录从 7.4 记录；引用调用者来自 PostgreSQL 18.6 源码，未在主机制造资源耗尽。

## 相关 {#related}
[`53400`](../53400/)、[`54001`](../54001/)、[`53200`](../53200/)

## 来源 {#sources}
[`contrib/pg_prewarm/autoprewarm.c#L943-L981`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/contrib/pg_prewarm/autoprewarm.c#L943)

[`src/backend/storage/buffer/localbuf.c#L270-L272`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/storage/buffer/localbuf.c#L270)

[`src/backend/storage/file/fd.c#L1072-L1078`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/storage/file/fd.c#L1072)

结构化[证据记录](../../data/evidence/53000.json)保存固定消息以及源码/运行边界。
