Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

abraao895

Replicação Postgres

Recommended Posts

Boa tarde pessoal,

Eu tenho a seguinte situação: Tenho um programa que roda sobre o PostgreSQL 8.2.11. A versão do banco de dados infelizmente não pode ser modificada devido á compatibilidade do programa que executo. Tentei utilizar o Slony-I para fazer a replicação e obtive sucesso. No entanto, em determinado momento da execução do programa algumas alterações foram aplicadas na estrutura das tabelas do Postgres e então obtive um erro. Gostaria de sugestões de como implementar um replicador que forneça sincronização de DDL também, pois sem esta característica não consigo resolver o meu problema. Desde já agradeço as sugestões! Abraão

Compartilhar este post


Link para o post
Compartilhar em outros sites

o q talvez de certo para voce, seria ter um repositorio de alteracao da extrutura

tipo uma tabela contendo toda alteracao, uma vez inserido um registro, uma trigger executaria o comando

 

ex

 

TB_ATU_EXTRUCT (ID, COMAMND)

 

onde ID seria somente um identificador, e command seria o comando de alteracao da extrutra tipo

 

'ALTER TABLE XXX ADD COLUMN XXX VARCHAR(10)'

 

ai você criaria uma trigger no after insert dessa table, onde teria algo do tipo

 

EXECUTE NEW."COMMAND";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Fabricio, obrigado pela resposta. Você sugere criar uma trigger(disparada quando inserir um novo registro) que grave em uma tabela todas as modificações de DDL, e em seguida uma outra trigger(disparada após a inserção de dado nesta tabela) que faça a alteração na outra base da dados. Interessante esta idéia, vou ver o que consigo implementar aqui. Agradeço!

 

o q talvez de certo para voce, seria ter um repositorio de alteracao da extrutura

tipo uma tabela contendo toda alteracao, uma vez inserido um registro, uma trigger executaria o comando

 

ex

 

TB_ATU_EXTRUCT (ID, COMAMND)

 

onde ID seria somente um identificador, e command seria o comando de alteracao da extrutra tipo

 

'ALTER TABLE XXX ADD COLUMN XXX VARCHAR(10)'

 

ai você criaria uma trigger no after insert dessa table, onde teria algo do tipo

 

EXECUTE NEW."COMMAND";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai vai depender de como você faz a atualizacao do teu banco de dados

na verdade a minha ideia era ter atualizacao da extrutura somente pela trigger

 

quado você fosse atualizar o banco de dados, em qq hipotese, seria tudo via insert nessa tabela

como se fosse uma tabela de scripts e ao inserir, a trigger executaria esse script

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.