#postgresql #memory #amazon-linux #pg-upgrade
Вопрос:
При попытке обновить базу данных 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>amp;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:
Где вы внесли эти изменения? Основываясь на сообщениях об ошибках, необходимо поднять кластер 13, а не кластер 14 max_locks_per_transaction
.
pg_dump запускается для старого кластера (с использованием нового двоичного файла), а не для нового.
Комментарии:
1. Именно в этом и заключалась проблема. Спасибо! Клиент обновил предыдущий файл 13 conf, и обновление прошло без проблем. ( они прокомментировали max_locks_per_transaction и max_connections=100 )