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

PostgreSQL 13.2升级至14时报共享内存不足问题求助(Amazon Linux 2)

PostgreSQL升级时报共享内存不足的解决方案

配置生效校验

  • 必须同时修改旧版本(13.2)和新版本(14)两个集群postgresql.conf的对应参数,仅修改单集群配置不会生效
  • 修改配置后需重启对应集群,执行show max_locks_per_transaction;连接到对应集群查询,确认配置已更新
  • 升级场景下建议临时将max_locks_per_transaction调整到1024以上,单库表数量超过5000的场景可调整到20484096,`max_connections`同步调整为日常值的23倍即可,升级完成后可回滚配置
  • 升级操作启动前停止所有业务连接、定时任务,避免其他连接占用共享锁资源,执行SELECT count(*) FROM pg_locks;可查看当前锁占用总量

系统内核参数调整

Amazon Linux 2默认的内核共享内存参数可能限制PostgreSQL的内存申请,即使调整PG配置也会触发内存不足报错

  • 执行sysctl kernel.shmmax kernel.shmall查看当前系统共享内存配置
  • 临时调高参数(升级完成后可恢复):
sysctl -w kernel.shmmax=17179869184
sysctl -w kernel.shmall=4194304
  • 如需永久生效可将上述参数写入/etc/sysctl.conf,执行sysctl -p加载配置

规避方案

如果调整后仍报错,可通过以下方式绕过锁上限限制:

  • 执行pg_upgrade时添加-j 1参数关闭并行升级,串行执行任务减少并发锁占用
  • 放弃pg_upgrade方案,分批导出导入数据:先导出全库结构,再按schema/表分批导出数据导入新集群

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:30:00