Temos um banco de dados postgres hospedado no Azure, que gostaríamos de atualizar a partir de um banco de dados postgres "no local".
Não tenho certeza, qual seria a melhor maneira de fazer isso?
Por meio de um backup incremental, depois de uma restauração incremental ou por meio de uma replicação Slony-I, embora tenha certeza de que esse recurso não existe para o Azure?
Obrigado
Em geral, a maioria dos provedores de serviços de banco de dados dificulta a replicação de/para eles para sua própria caixa, de modo que a replicação, pelo menos a replicação postgres nativa, provavelmente não funcionará.
Isso deixa você com soluções de replicação que não são tão totalmente integradas, como Slony, Bucardo, pgpool.
Meu conselho seria primeiro descrever suas necessidades e depois usar essas informações para decidir qual abordagem seria mais fácil de manter, o que na minha opinião é muito mais importante do que fácil de instalar.
Você precisa ter os dados sempre atualizados? Então você quer algum meio de replicação.
Os dados podem estar atrasados em horas ou um dia? Você pode usar um processo para obter os dados do primário para o computador do Azure sem replicação.
Os dados são atualizados ou são apenas para inserção? Tabelas somente de inserção são muito mais fáceis de replicar.
Você tem ou pode configurar os campos insert_date e last_update datas/timestamp? Se você tem uma maneira de saber o que é novo e/ou atualizado desde sua última migração, você pode fazer seu próprio processo com a vantagem de que funcionará independentemente do provedor que você usar. Uma desvantagem potencialmente grande é que você tem que gerenciar isso sozinho para cada mesa. Se o seu ambiente estiver mais maduro e você não estiver adicionando novas tabelas com frequência, esse é um método em potencial.
Os dados de algumas ou todas as tabelas vêm de alguma fonte externa? Em um caso como esse, você pode carregar duas vezes , onde cada fonte é carregada em ambos os lugares. A maior desvantagem é que você precisa replicar seus processos para carga e monitoramento, além de encontrar uma maneira de garantir que não haja discrepâncias.
Normalmente, o fator decisivo para esse tipo de projeto é o quanto os dados podem estar atrasados e tudo, na maioria das vezes, geralmente é baseado nisso.
O outro fator importante é o tamanho. Se você está falando de um punhado de MBs, o processo é trivial, não importa o caminho que você siga. Se você está falando de Terabytes, então incremental ou replicação é uma necessidade absoluta.