跳转到主要内容

53100 — disk_full

PostgreSQL SQLSTATE 53100 的来源与诊断参考。

53100

速览

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

字段
SQLSTATE 53100
条件名 disk_full
状态 有效
已知存在于 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_DISK_FULL
别名

含义

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

诊断

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

处理

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

版本

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

53000

来源

src/backend/backup/basebackup_server.c#L177-L182

src/backend/storage/smgr/md.c#L521-L526

src/backend/storage/smgr/md.c#L512-L526

src/backend/utils/error/elog.c#L868-L938

结构化证据记录保存固定消息以及源码/运行边界。