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

PostgreSQL 14出现cache lookup failed for attribute报错的原因与解决咨询

PostgreSQL 14 "cache lookup failed for attribute 1 of relation 144348" 报错分析与解决

可能原因

  • 系统目录缓存不一致:PostgreSQL的系统目录缓存(如pg_class、pg_attribute)出现数据不匹配,多由并发DDL操作(频繁创建/删除表、修改表结构)结合缓存刷新机制的偶发冲突导致。
  • 后台进程异常:autovacuum等后台进程异常中断,或维护系统目录时故障,造成缓存元数据与磁盘实际数据脱节。
  • 存储层损坏:磁盘IO错误、文件系统损坏,导致系统目录的物理数据出现损坏,引发缓存查找失败。
  • 扩展/自定义函数问题:使用的第三方扩展或自定义PL/pgSQL函数若存在直接操作系统目录元数据的逻辑,可能破坏缓存一致性。

解决方法

  • 手动刷新系统缓存:低峰期执行SELECT pg_invalidate_system_caches();(会清空所有系统缓存,短时间影响性能),或轻量刷新快照SELECT pg_stat_clear_snapshot();。
  • 修复系统目录:执行REINDEX SCHEMA pg_catalog;重建系统目录索引,修复可能的索引损坏;若怀疑数据损坏,可关闭数据库后运行pg_checksums检查数据文件完整性。
  • 调整DDL操作:查看DDL操作日志,将频繁的表创建、删除、ALTER TABLE操作调整到低峰期执行,或添加锁机制减少并发冲突。
  • 检查并重启服务:查看PostgreSQL日志确认autovacuum等进程状态,若存在异常退出记录,低峰期重启PostgreSQL服务。
  • 排查存储健康:检查服务器磁盘IO、系统日志中的存储错误信息,必要时修复文件系统或更换故障存储设备。

需补充的排查信息

若上述方法无效,需提供以下信息进一步定位:

  • 报错发生时的完整PostgreSQL日志(含报错前后的操作记录)
  • 数据库近期的DDL操作历史
  • 服务器硬件状态(磁盘IO、内存使用率)
  • 数据库使用的第三方扩展列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 10:12:04