Como posso sincronizar os bancos de dados do MS SQL Server?

2

Como posso sincronizar bancos de dados do MS SQL Server? Existe alguma ferramenta, preferencialmente de código aberto?

    
por Rajesh 23.02.2010 / 13:51

5 respostas

6

Para sincronização programada e ad hoc do banco de dados, você pode usar ApexSQL Diff (para sincronização de esquema de objetos) e ApexSQL Data Diff (para sincronização de registros)

Eles não podem ser usados para sincronização em tempo real. IMO, é melhor usar o espelhamento de banco de dados em tempo real

    
por 08.03.2013 / 22:14
5

Como outros já disseram, existem muitas formas internas no SQL Server 2008 para fazer com que dois servidores sejam sincronizados, em tempo real ou com agendamento.

Alguns pontos que você deve levar em consideração:

  • Quão "longe" são os dois servidores (ou seja, quanto de largura de banda e latência entre eles)?
  • Qual é o tamanho dos dois bancos de dados?
  • Com que frequência e quanto os dados são alterados?
  • Os dados realmente mudam ou são apenas novos dados adicionados ao existente?

Dependendo das respostas, você pode escolher o método mais adequado às suas necessidades; diferente dos que já foram descritos (replicação e espelhamento), lembre-se que você também pode fazer outras coisas:

  • L og Shipping
  • Exportar / importar dados usando o Integration Services.
  • Backup / restauração.
  • Destaque, faça uma cópia física, anexe.
por 23.02.2010 / 22:41
3

Você observou as funções de espelhamento incorporadas? O Technet tem uma breve descrição aqui . O servidor primário envia seus registros de log de transações para um servidor secundário, que então reproduz o log de transações.

O espelhamento pode ser configurado de forma síncrona ou assíncrona.

    
por 23.02.2010 / 14:20
2

Se eu entendi bem, você quer ter uma cópia do banco de dados do servidor da web em sua máquina local. As alterações no banco de dados no servidor da Web devem ser periodicamente copiadas para o servidor local.

Eu acredito que você pode fazer isso com a replicação, mas você precisa de pelo menos uma edição do Workgroup do servidor SQL no seu servidor web.

Se o banco de dados não for grande ou não for alterado com freqüência, você poderá usar a replicação de instantâneos. O SQL Server periodicamente obterá um instantâneo do banco de dados e o replicará para o servidor local.

Para bancos de dados maiores ou alterados frequentemente, sugiro que você use a replicação de mesclagem. É menos tempo e consome muitos recursos.

Você pode obter mais informações sobre replicação nos Manuais Online. Dê uma olhada também em Padrões de movimento de dados .

    
por 23.02.2010 / 14:28
1

Eu tenho um postagem no blog descrevendo como configurar o espelhamento de banco de dados para servidores que não são de domínio. No entanto, isso não permite que você tenha ambos os SQL Servers ativos ao mesmo tempo, para isso você precisaria fazer alguma forma de replicação. Dependendo de como os dados são acessados, se tudo for lido, então não é tão ruim, se for lido em um servidor e lido / escrito no outro, novamente não é tão ruim, se é escrever / escrever, então você estará pronto para alguns momentos "interessantes".

    
por 04.03.2010 / 12:43