You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL特定表删除失败:Delete is pending, will be blocked错误求助

关于PostgreSQL中“Delete is pending, will be blocked”错误的求助

近期我们的应用无法从alarm_action表中删除任何行,甚至在psql shell中执行删除操作也失败,报错如下:

vnms=# delete from alarm_action where id = 12345678;
ERROR:  Delete is pending, will be blocked

注:12345678是一个不存在的无效ID,错误信息立即返回,无延迟

我推测alarm_action表存在某种“Delete is pending”标记,因为其他表的删除操作可正常执行,但不确定该标记的位置。我尝试在网上搜索该错误信息无果,下载PostgreSQL源码也未找到相关内容。

已执行以下操作,均未解决问题:

  • 重启PostgreSQL,无变化;
  • 重命名数据库,无变化;
  • 备份数据库后删除原库,新建数据库并恢复备份,刷新了所有oid,但错误仍存在;
  • 重命名后的旧库和新库中,删除alarm_action表数据均报相同错误,由于两者oid不同,说明该状态并非由oid持久化;
  • 检查pg_stat_activity,结果为空;
  • 检查pg_locks,所有锁均已统计,甚至用pg_terminate_backend()强制移除所有锁,刷新了锁的pid和oid,但错误仍存在,说明该错误与pg_locks无关。

“Delete is pending”错误较为特殊,它明确与某一删除操作相关。如果只是锁问题,操作要么会挂起等待锁,要么返回类似“无法获取锁”的信息。我确定这是PostgreSQL内部问题,而非数据库中其他表导致的持久化状态。

请问有人了解“Delete is pending, will be blocked”错误的成因、跟踪方式及解锁方法吗?感谢解答。


内容的提问来源于stack exchange,提问作者user27373555

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 03:44:59