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

PG11升级至PG14时pg_upgrade报错:postgres数据库被其他用户访问

PG升级时DROP postgres库报错的原因分析

核心原因

  • 外部数据包装器(FDW)的连接即使状态显示非活跃,依然属于绑定到postgres数据库的有效会话,会被PostgreSQL计入数据库的连接计数中。
  • DROP DATABASE操作的硬性要求是:目标数据库不能有任何关联的会话(无论会话是活跃还是闲置状态)。只要有会话存在,哪怕处于idle状态,都会阻止删除操作执行。
  • 你查询到的那条FDW连接,就是导致报错的直接原因——它虽然状态非活跃,但仍然占用着postgres数据库的连接资源。

验证方式

可以执行以下SQL,精准筛选出除当前查询会话外,所有连接到postgres的会话:

SELECT pid, datname, state, usename, application_name 
FROM pg_stat_activity 
WHERE datname = 'postgres' 
  AND pid != pg_backend_pid();

执行结果中会包含那条FDW连接,确认它确实属于postgres数据库的关联会话。

解决步骤

  • 先终止所有连接到postgres的非必要会话(包括FDW连接):
    SELECT pg_terminate_backend(pid)
    FROM pg_stat_activity 
    WHERE datname = 'postgres' 
      AND pid != pg_backend_pid();
    
  • 执行pg_upgrade前,确保数据库没有任何外部连接(包括应用、监控工具、FDW等),必要时可以切换到单用户模式操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:43:18