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