#linux #postgresql #pgpool
Вопрос:
Всем доброе утро, у меня есть настройка HA, состоящая из 2 серверов Postgres с pgpool поверх них. Настройка работает нормально. Я пытаюсь реплицировать данные этого кластера на третий сервер Postgres(за пределами текущего кластера), используя для этого команду pg_basebackup. Когда я предоставил pg_basebackup основной IP-адрес Postgres, он работал нормально, и данные были реплицированы на третий сервер.
Теперь я пытаюсь выполнить то же самое действие, но на этот раз вместо предоставления IP-адреса для главной Postgres я предоставляю IP-адрес pgpool команде pg_basebackup и получил следующие ошибки.
В журналах главного сервера Postgres
LOG: could not receive data from client: Connection reset by peer
ERROR: cannot execute SQL commands in WAL sender for physical replication
На сервере Postgres, с которого выполняется pg_basebackup
pg_basebackup: could not send replication command "SHOW data_directory_mode": FATAL: Backend throw an error message
DETAIL: Exiting current session because of an error from backend
HINT: BACKEND Error: "cannot execute SQL commands in WAL sender for physical replication"
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
Примечание: Pgpool настроен таким образом, что все запросы на чтение/запись направляются только на главный сервер postgres, и я использую потоковую репликацию с pg_basebackup.