Как я могу продолжать писать в основной postgresql, пока репликация отсутствует?

Как я могу продолжать писать в основной postgresql, пока репликация отсутствует?

Оказалось, что мой скрипт не смог выполнить reloadpostgresql из-за ошибки аутентификации. Так что все нижеследующее — этоложный вопросpostgresql. После того, как я исправил ошибку, postgresql позволил мне писать на основной сервер solo без всяких проблем. Спасибо Никите Киприянову за помощь, но вы можете пропустить слова ниже.


Моя цель — позволить главному серверу по-прежнему обрабатывать запросы на запись, пока резервный сервер находится в состоянии сбоя. Я заметил, synchronous_commit =что можно вручную настроить offи затем перезагрузить основной сервер.

Другие конфигурации включают repmgr.confв себя repmgr: use_replication_slots=yes

Поэтому резервный сервер создан repmgrзапросом к основному серверу, чтобы зарезервировать для него wal-logs, пока он находится в состоянии отказа. Все идет не совсем так, как ожидалось - я могу зафиксировать операцию записи на основном сервере, а резервный может клонировать ее с основного сервера, но с ошибкой - команда записи всегда застревает здесь:

postgres=# CREATE DATABASE ANYTHING;

Подсказка не появлялась снова, пока я не нажал Ctrl+ D, со следующими строками:

^CCancel request sent
WARNING:  canceling wait for synchronous replication due to user request
DETAIL:  The transaction has already committed locally, but might not have been replicated to the standby.
CREATE DATABASE
postgres=#

Таким образом, это всегда заканчивалось зависанием, когда я пытался записать данные на основной сервер, пока он synchronous_commit = off. ( psql -c ...это также приведет к зависанию оболочки). Это означает, что это временное изменение настроек репликации не достигает моей цели — предотвратить «забастовку» основного сервера, пока резервный сталкивается с проблемой!

Есть ли способ обойти это замораживание? Спасибо.

Связанный контент