Replicando banco de dados PostgreSQL

Nesse artigo será descrito o processo de como fazer replicação de dados PostgreSQL usando a ferramenta Slony. O Slony inclusive suporta múltiplos masters. Também é interessante observar que a replicação de dados através dessa ferramenta pode ser feita entre versão 7 e 8 do PostgreSQL sem problemas, podendo ser usado para migrar os dados da versão 7 para 8 de forma bastante simples.

[ Hits: 69.964 ]

Por: Rafael Donato em 09/05/2006


Finalizando



Caso haja algum erro na hora de você rodar o script estabelece_comunicacao_replicacao.sh, você não poderá, assim que corrigir os erros, rodar de novo o script com o mesmo nome do cluster, irá aparecer um erro dizendo que este cluster já está cadastrado. Para evitar isso, crie um script com o conteúdo:

#!/bin/sh

slonik <<_EOF_
cluster name = $CLUSTERNAME;
node 1 admin conninfo = 'dbname=$MASTERDBNAME host=$MASTERHOST user=$REPLICATIONUSER';
node 2 admin conninfo = 'dbname=$SLAVEDBNAME host=$SLAVEHOST user=$REPLICATIONUSER';
uninstall node ( id = 1 );
uninstall node ( id = 2 );
_EOF_

Antes de você rodar novamente o script estabelece_comunicacao_replicacao.sh, rode o script acima antes, para o nome do cluster desejado ser descadastrado.

Página anterior    

Páginas do artigo
   1. Instalação
   2. Configurações necessárias
   3. Criando os scripts necessários
   4. Finalizando
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

PostgreSQL: comandos básicos

Instalando e Configurando o pgAgent no Linux (pgAdmin e PostgreSQL)

PostgreSQL - Instalação inicial no Debian Wheezy 64 bits

Criando um banco de dados espacial com PostgreSQL + PostGIS

Replicação de dados síncrona com Postgres

  
Comentários
[1] Comentário enviado por epgielow em 09/05/2006 - 16:12h

Otimo artigo, parabens!

[2] Comentário enviado por joaocosme em 09/05/2006 - 16:14h

eu vo ter q setar tabela por tabela q ira ser replicada?

[3] Comentário enviado por rdal em 09/05/2006 - 16:28h

à pergunta de joaocosme, sim.

[4] Comentário enviado por rdal em 09/05/2006 - 16:28h

No script é necessário explicitar todas as tabelas que irão participar do processo de replicação. Respondendo à pergunta de joaocosme, sim.

[5] Comentário enviado por kurt3dfx em 03/07/2006 - 14:05h

Pessoal o meu scritp estabelece_comunicacao_replicacao.sh está dando este erro :
<stdin>:43: ERROR: syntax error at or near _EOF_

Alguem sabe me explicar o que pode ser ?

[6] Comentário enviado por kurt3dfx em 03/07/2006 - 14:19h

resolvi hehe coisa de noob mesmo xD

só uma coisa agora
eu tenho um schema public e quando eu monto o script ele cria um _public com umas tabelas lá... o schema não seria o das tabelas ?

[7] Comentário enviado por kurt3dfx em 03/07/2006 - 15:55h

ja consegui tb !!! :DDDDDDDDDDD

[8] Comentário enviado por rdal em 04/07/2006 - 01:49h

Não, ele cria um esquema separado para a replicação.
:)

[9] Comentário enviado por kurt3dfx em 06/07/2006 - 11:48h

cara, como que automatiza isso na inicialização do servidor ? so o script não inicia... tem q ter o slon configurado

[10] Comentário enviado por kurt3dfx em 10/07/2006 - 12:21h

hein rdal, o ./replicacao_start é pra iniciar a replicação independente de dar um slon no console nao é ?? só que ele não inicia
dá uma luz ae :D
tranks

[11] Comentário enviado por diegotolentino em 01/08/2006 - 09:37h

Seu artigo é otimo e estou pensando em utilizalo em detrimento de uns scripts que estou tendo que manter no braço(e apanhando igual cabrito na horta). Agora algumas perguntas

1. a conexão entre o master e o slave é persistente? se sim, não tem como fazer um buffer e executar a replicação em intervalos de tempo (tipo usando o cron)? se for persistente tenho que abrir um handler para cada slave que eu quiser atualizar?

2. fazendo as minhas estruturas corretamente, mantendo um intervalo de primarykey reservadas para cada banco, eu poderia ter update/insert/delete no slave tambem?

[12] Comentário enviado por andersonaa em 30/08/2006 - 12:30h

O que pode ser este erro:
<stdin>:6: Error: namespace "_voipix" already exists in database of node 1
<stdin>:6: ERROR: no admin conninfo for node 134590736

[13] Comentário enviado por diegotolentino em 24/11/2006 - 17:00h

como eu resolveria o problema abaixo, onde devo ir?

<stdin>:6: fe_sendauth: no password supplied
<stdin>:6: ERROR: no admin conninfo for node 134594832

[14] Comentário enviado por diegotolentino em 28/11/2006 - 15:46h

Amigo voce pode me ajudar a resolver o problema abaixo?

isso da quando vou executar o replicacao_start.sh

NOTICE: truncate of "public"."sys_pessoa" failed - doing delete
libgcc_s.so.1 must be installed for pthread_cancel to work

[15] Comentário enviado por celiojs em 09/12/2006 - 19:04h

Muito bom seu artigo!!!!!!
Em partes atende uma necessidade que tenho:
Como eu resolveria o problema de um deles parar e esse problema ficar transparente para a minha aplicação?
Até mais, e parabéns!!!!
Célio

[16] Comentário enviado por juangaray em 03/01/2007 - 10:59h

como eu faço para criar as tabelas? para replicação???

[17] Comentário enviado por eltonramos em 20/08/2007 - 12:26h

A replicação é na hora?
Online?

[18] Comentário enviado por fdmarp em 27/04/2009 - 20:20h

Legal ... deveria haver mais iniciativas de se escrever sobre dicas de postgres

[19] Comentário enviado por aldoarendt em 21/05/2009 - 11:39h

Bom dia a todos quando executo o comando

slon $CLUSTERNAME "dbname=$MASTERDBNAME user=$REPLICATIONUSER host=$MASTERHOST"

2009-05-21 08:37:00 BRT ERROR cannot get sl_local_node_id - ERROR: schema "_teste" does not exist
2009-05-21 08:37:00 BRT FATAL main: Node is not initialized properly - sleep 10 s

[20] Comentário enviado por betolima em 20/08/2010 - 13:49h

qual seria o caminho correto?

--with-pgsourcetree=/path/to/source/postgresql-x.y.z/

path/to/source

não sei o path correto

valeu


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts