Postgres pg_upgrade 13.2 到 14,返回共享内存不足。 - Amazon Linux 第 2 版 (Karoo)
Posted
技术标签:
【中文标题】Postgres pg_upgrade 13.2 到 14,返回共享内存不足。 - Amazon Linux 第 2 版 (Karoo)【英文标题】:Postgres pg_upgrade 13.2 to 14, returns out of shared memory. - Amazon Linux release 2 (Karoo) 【发布时间】:2021-12-02 10:21:21 【问题描述】:尝试将 Postgres 13.2 数据库升级到 14 时,我在运行升级时收到错误“共享内存不足”。
我已经调整了
max_locks_per_transaction
到不同且非常高的值,以及 max_connections
和其他内存设置。我检查了许多配置设置,但没有找到无法使用这些设置执行 pg_dump/pg_upgrade 的原因。
操作系统是
Amazon Linux release 2 (Karoo). ID_LIKE="centos rhel fedora"
报错如下
command: "/usr/pgsql-14/bin/pg_dump" --host /usr/pgsql-14/bin --port 50432 --username postgres --schema-only --quote-all-identifiers --binary-upgrade --format=custom --file="pg_upgrade_dump_18458.custom" 'dbname=aprivatedb' >> "pg_upgrade_dump_18458.log" 2>&1
pg_dump: error: query failed: ERROR: out of shared memory
HINT: You might need to increase max_locks_per_transaction.
pg_dump: error: query was: LOCK TABLE "privatedata"."private_activities" IN ACCESS SHARE mode
【问题讨论】:
【参考方案1】:您在哪里进行了这些更改?根据错误消息,需要 max_locks_per_transaction
提升的是 13 集群,而不是 14 集群。
pg_dump 针对旧集群运行(使用新的二进制文件),而不是新的。
【讨论】:
这正是问题所在。谢谢 !客户端更新了之前的 13 conf 文件,升级运行没有问题。 (他们已经注释掉了 max_locks_per_transaction 和 max_connections=100 )以上是关于Postgres pg_upgrade 13.2 到 14,返回共享内存不足。 - Amazon Linux 第 2 版 (Karoo)的主要内容,如果未能解决你的问题,请参考以下文章