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

PostgreSQL 9.4(Windows 7)连接报错:无法打开文件base\12135\11946

解决PostgreSQL 9.4在Windows 7上的"base\12135\11946文件缺失"连接错误

你碰到的这个FATAL:could not open file"base\12135\11946":No such file or directory错误,本质是PostgreSQL在尝试访问某个数据库对象(可能是表、索引甚至临时文件)对应的物理文件时,发现文件要么丢失了,要么损坏了。常见诱因包括异常关机、磁盘IO故障、误删数据目录里的文件,或者磁盘空间不足导致文件未完整写入就中断了。下面是一步步的排查和解决办法:

第一步:确认文件是否真的缺失

  • 找到PostgreSQL的数据目录(默认路径一般是C:\Program Files\PostgreSQL\9.4\data,如果安装时修改过路径就找你当时选择的位置)
  • 进入base\12135子目录,查看是否存在11946这个文件
    • 如果是不小心移走了,把它移回原目录后重启PostgreSQL服务试试
    • 如果确实找不到这个文件,继续往下排查

第二步:检查PostgreSQL服务状态

  • 按下Win + R,输入services.msc打开服务管理器
  • 找到postgresql-x64-9.4(32位系统对应服务名为postgresql-9.4),确认服务是否处于运行状态
    • 如果服务未启动,尝试手动启动;若启动失败,继续下一步排查

第三步:优先通过备份恢复(最安全的方案)

如果你之前有定期备份数据库的习惯,直接执行以下步骤:

  1. 停止PostgreSQL服务
  2. 将当前的数据目录重命名(比如改成data_old),避免覆盖原数据
  3. 新建一个空的data目录,用initdb命令初始化:
    "C:\Program Files\PostgreSQL\9.4\bin\initdb.exe" -D "C:\Program Files\PostgreSQL\9.4\data"
    
  4. 启动服务,然后用pg_restore恢复备份文件:
    "C:\Program Files\PostgreSQL\9.4\bin\pg_restore.exe" -d 你的数据库名 备份文件的完整路径
    

第四步:无备份时尝试修复(存在数据丢失风险,谨慎操作)

注意:操作前务必将当前的data目录完整复制一份做备份!

  1. 停止PostgreSQL服务
  2. 以管理员身份打开命令提示符,切换到PostgreSQL的bin目录:
    cd "C:\Program Files\PostgreSQL\9.4\bin"
    
  3. 执行事务日志重置命令,强制跳过损坏的文件记录:
    pg_resetxlog.exe -f "C:\Program Files\PostgreSQL\9.4\data"
    
  4. 尝试启动服务,如果能成功启动,立即对所有数据库做全量备份,之后建议尽快升级到受支持的PostgreSQL版本(9.4已停止维护)

第五步:检查磁盘健康状况

文件莫名丢失也可能是磁盘存在坏道导致的:

  • 打开我的电脑,右键点击PostgreSQL数据所在磁盘,选择属性 -> 工具 -> 检查
  • 运行磁盘检查工具,修复潜在的磁盘错误,防止后续再出现类似问题

最后提醒:PostgreSQL 9.4是2014年发布的老旧版本,2020年已停止所有维护,不仅存在安全隐患,遇到问题也难以获得官方支持,建议尽快升级到12及以上的受支持版本,同时一定要养成定期备份数据库的习惯,避免数据丢失。

内容的提问来源于stack exchange,提问作者Swaroop chandan reddy p

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:34:35