Como alterar o banco de dados Postgresql de somente leitura para gravável

4

Sou novo no gerenciamento de servidores, especialmente no postgresql no Ubuntu Server, por isso, tenha paciência comigo.

Estou tentando sincronizar entre dois bancos de dados em dois computadores diferentes, mas não tenho certeza do que fiz de errado, já que, independentemente do que tentei fazer, parece que os servidores foram configurados em modo somente leitura.

Por exemplo, se eu quisesse criar um papel, gostaria de receber:

ERROR: cannot execute CREATE ROLE in a read-only transaction

Ou, se eu quiser criar uma tabela, recebo uma mensagem de erro:

ERROR: cannot execute CREATE TABLE in a read-only transaction.

Não faço ideia do que fazer aqui, por isso aconselho muito sobre como resolver este problema.

Estou usando o PostgreSQL versão 9.1 no Ubuntu Server 12.04, a propósito.

    
por hdr 24.09.2014 / 03:34

1 resposta

4

Como SELECT pg_is_in_recovery() é true , você está conectado a um servidor de réplica somente leitura no modo hot_standby . A configuração da réplica está em recovery.conf .

Você não pode torná-lo de leitura / gravação, exceto promovendo-o a um mestre, e nesse ponto ele deixará de receber novas alterações do servidor mestre antigo. Veja a documentação do PostgreSQL sobre replicação .

O primeiro passo é verificar se existe um arquivo 'recovery.conf' no diretório de dados. Se ele existir, se você tiver certeza de que está no servidor master (não escravo), renomeie esse arquivo para 'recover.conf.backup'. Em seguida, reinicie o servidor postgresql. Deve permitir que você escreva novos registros agora.

    
por 24.09.2014 / 05:04