PostgreSQL 9.5 - изменить значение max_connections невидимым для подчиненных - PullRequest
1 голос
/ 29 января 2020

Я добавил процесс pgbouncer на свой главный сервер, поэтому я хочу уменьшить количество соединений с 1500 до 100 или около того, чтобы освободить ресурсы на главном сервере, но когда я изменяю его как на главном, так и на ведомом устройствах, новая настройка не видна ведомому:

2020-01-29 14:59:19 dbr5 postgres[47563]: [4-1] 2020-01-29 14:59:19 EST [47563]: [4-1] user=,db=,app=,client= FATAL:  hot standby is not possible because max_connections = 100 is a lower setting than on the master server (its value was 1500)

Это после того, как мастер был изменен:

master=# show max_connections;
 max_connections
-----------------
 100
(1 row)

Любые подсказки, почему ведомые не принимают новую настройку

Ответы [ 3 ]

1 голос
/ 30 января 2020

Ведомому необходимо знать настройку max_connections ведущего для выполнения этой проверки, и поэтому мастер уведомляет подчиненное устройство об изменениях через запись WAL.

Однако ведомое не будет читать записи WAL. если его текущий параметр max_connections несовместим с последним известным параметром на главном устройстве .

Сначала необходимо перенастроить мастер, дать возможность реплицировать соответствующую запись WAL, а затем перенастроить раб.

1 голос
/ 30 января 2020

Установка hot_standby = off на ведомых устройствах, перезапуск мастера с новым более низким номером соединения, а затем после подтверждения, что ведомое устройство получило изменение, просмотрев в журнале запись журнала FATAL: the database system is starting up, затем переключив его обратно на on сработало. Теперь в системе установлен новый нижний предел подключения.

0 голосов
/ 30 января 2020

Параметры конфигурации, если они установлены глобально, никогда не реплицируются. Их можно установить

  • в postgresql.conf

  • с помощью ALTER SYSTEM

  • с помощью команды параметры строки при запуске процесса сервера

Последний параметр явно не может быть реплицирован, и первые два используют файлы конфигурации, которые также не реплицируются.

Это особенность: в некоторых случаях параметры конфигурации могут отличаться (хотя обычно это не рекомендуется).

Вам потребуется изменить параметр на резервном сервере.

...