On 20-09-2012 20:31, Flavio Henrique Araque Gurgel wrote:
> 
> Em 20-09-2012 20:10, Fábio Telles Rodriguez escreveu:
>> Alguém sabe se é possível e como copiar tabelas fisicamente entre
>> diferentes clusters?
>>
Se fosse fácil assim não teria muita graça. ;)

>> Tenho várias tabelas particionadas e preciso mover periodicamente
>> partições de uma base de produção para uma base histórica. Sei que posso
>> mover dados com um simples dump, mas isso custa muito, muuuuito caro.
>> Queria saber se é possível, mexer com segurança debaixo do capô dos
>> datafiles e fazer este tipo de movimentação.
> 
Por que a cópia de segurança lógica é tão cara? Perda de performance? Você não
dispõe de um standby para fazer essa cópia de segurança a partir dele? Já
pensou em utilizar alguma das ferramentas de replicação lógica (Slony,
Londiste ou Bucardo) ?

> Certamente que não. Motivos:
> 
> 1) As tabelas são nomeadas com o relfilenode que é guardado em catálogo 
> de sistema. Não sei como você criaria esses dados em catálogo sem correr 
> riscos.
> 
> 2) Algumas informações do mapa de visibilidade sobre as transações já 
> concluídas são guardadas em mapa de bits no diretório pg_clog que é para 
> todo o cluster
> 
Acho que você misturou as coisas... Mapa de visibilidade é um artifício para
acelerar o VACUUM; se ele se "perder", pode ser reconstruído _automagicamente_
(pelo VACUUM).

> 3) As informações de transações correntes são guardadas em mapa de bits 
> nos diretórios pg_multixact, pg_subtrans e pg_twophase, que também são 
> para todo o cluster.
> 

4) Se a arquitetura for diferente, você não conseguirá manipular os datafiles.

> Não sei se tem algo no todo relativo a "tablespaces portáteis" para o 
> PostgreSQL, mas numa conversa com o Bruce Momjian uma vez ele me 
> explicou que muitas informações das tabelas são "cluster wide" e, 
> portanto, um retrabalho muito grande de código paralizaria outros 
> desenvolvimentos mais importantes.
> 
Não existe o conceito de tablespace portável ou mesmo tabela portável ainda.
Concordo que seria um esforço enorme para um caso de uso pequeno senão ínfimo.
A replicação lógica cobre essa lacuna. FYI está em desenvolvimento a
replicação lógica no core; possivelmente na 9.3 teremos esse recurso sem
precisar utilizar alguma ferramenta externa.


-- 
   Euler Taveira de Oliveira - Timbira       http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a