↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / SQL 状态码 / Class 53 资源不足

53100 disk_full

ERROR 源码确认 详解 未实测

类别
Class 53 资源不足
严重等级
ERROR
条件名
disk_full
宏名称
ERRCODE_DISK_FULL
最早已知存在
7.4
状态
有效

版本覆盖

版本条依据已采样构建显示;灰色版本可能尚未采样,悬停可查看。手册链接随版本选择,源码和运行证据保持原核验构建。

速览

53100 表示文件写入进入明确的短写分支。固定路径覆盖基础备份输出和关系文件扩展;诊断会给出文件、已写/请求字节以及 offset 或 block。

含义

短写消息给出目标文件、已写/请求字节以及 offset 或 block,并提示 Check free disk space.。同一个 md.c 函数先把负的 FileWrite 结果交给 errcode_for_file_access() 和 %m;固定 helper 的 saved-errno 分支把 ENOSPC 映射为 53100,但没有列出 EFBIG 或 EDQUOT,它们会走 ERRCODE_INTERNAL_ERROR 默认分支。这是存储写入边界,不是普通 SQL 数据错误,也不能据此断言宿主卷已满。

报文模板

源码里的格式串,不是某一次运行的输出。%s 之类是占位符,实际报文会填入对象名与取值。适用范围一栏是核验时留下的原始英文记录,未经翻译。

主消息 could not write file "%s": wrote only %d of %d bytes at offset %lld
HINT Check free disk space.

来源: 来源:src/backend/backup/basebackup_server.c @ REL_18_6

主消息 could not extend file "%s": wrote only %d of %d bytes at block %u
HINT Check free disk space.

来源: 来源:src/backend/storage/smgr/md.c @ REL_18_6

主消息 could not extend file "%s": %m

来源: 来源:src/backend/storage/smgr/md.c @ REL_18_6 · 来源:src/backend/utils/error/elog.c @ REL_18_6

适用范围:The source selects errcode_for_file_access() from errno; this template is not itself proof that the resulting SQLSTATE is 53100.

诊断

按消息定位文件系统和路径,检查空间、配额、挂载状态、写入错误及受影响的数据库或备份卷,再把 offset/block 和部分字节数与操作及服务器日志对应。若 primary 是 could not ...: %m 而不是短写模板,应检查保存的 errno:固定 helper 把 ENOSPC 映射为 53100,但未列出的 EFBIG 和 EDQUOT 会进入其 internal-error 默认分支。不能把 errno 对应的其他 SQLSTATE 重新标成 53100。

处理

在指定文件系统释放或增加容量、修复报告的写入条件,或改用合适目标。部分基础备份或关系写入在验证前都应视为不完整;按该操作的恢复流程处理。显式事务中若发生此 ERROR,重试前执行 ROLLBACK 或 ROLLBACK TO SAVEPOINT;自动提交只有在存储原因修复后才能重试。不要在用户实例制造磁盘压力。

版本

锁定目录从 7.4 记录;引用写入路径来自 PostgreSQL 18.6,未执行磁盘满运行。

来源

证据

断言

每条断言都写明了是怎么核实的,以及它不覆盖什么。这一层是核验时留下的原始英文记录,照原样呈现,未经翻译。

同类 SQL 状态码

状态码 条件名 宏名称 严重等级 版本
Class 53 资源不足 Insufficient Resources 5 个 ↗
53000 insufficient_resources ERRCODE_INSUFFICIENT_RESOURCES ERROR 7.4 起已知
服务器资源不足的宽泛条件,需看消息定位资源。 有效
53100 disk_full ERRCODE_DISK_FULL ERROR 7.4 起已知
写文件时发生短写,通常是磁盘空间耗尽。 有效
53200 out_of_memory ERRCODE_OUT_OF_MEMORY ERROR 7.4 起已知
内存分配失败,涵盖会话内存与共享内存不足。 有效
53300 too_many_connections ERRCODE_TOO_MANY_CONNECTIONS ERROR 7.4 起已知
连接数达到角色、库或服务器上限,新连接被拒。 有效
53400 configuration_limit_exceeded ERRCODE_CONFIGURATION_LIMIT_EXCEEDED ERROR 9.2.0 起已知
配置上限或进程槽位耗尽,如后台 worker 槽位。 有效