Como ainda posso gravar no postgresql primário enquanto a replicação está ausente?

Como ainda posso gravar no postgresql primário enquanto a replicação está ausente?

Acontece que meu script falhou no reloadpostgresql devido a um erro de autenticação. Então tudo abaixo é umproblema falsodo postgresql. Depois de corrigir o bug, o postgresql me permitiu escrever no servidor primário solo sem qualquer dificuldade. Agradeça a Nikita Kipriyanov pela ajuda, mas você pode omitir as palavras abaixo.


Meu objetivo é permitir que o servidor mestre ainda seja capaz de processar a solicitação de gravação enquanto o modo de espera falha. Percebi synchronous_commit =que pode ser configurado manualmente offe recarregar o servidor primário.

Outra configuração inclui repmgr.confpara repmgr: use_replication_slots=yes

Portanto, o servidor standby criado por repmgrsolicita ao servidor primário que reserve wal-logs para ele enquanto estiver com falha. As coisas não acontecem exatamente como esperado - consigo confirmar a operação de gravação no primário e o modo de espera é capaz de cloná-la do primário, mas com um bug - o comando de gravação sempre fica preso aqui:

postgres=# CREATE DATABASE ANYTHING;

O prompt não apareceu novamente até que eu pressionei Ctrl+ D, com estas linhas:

^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=#

Portanto, sempre travava sempre que eu tentava gravar no primário enquanto estava synchronous_commit = off. ( psql -c ...resultará em um congelamento no shell também) Isso significa que essa mudança temporária na configuração de replicação não atinge meu objetivo de evitar que o primário sofra um "ataque" enquanto o modo de espera encontra problemas!

Existe uma maneira de contornar esse congelamento? Obrigado.

informação relacionada