Sincronizar dados

Aplica-se a: SQL ServerAzure SQL Managed Instance

A sincronização de dados refere-se ao processo pelo qual as alterações de dados e de esquema são propagadas entre o Publisher e os Subscritores após o instantâneo inicial ter sido aplicado ao Subscritor. A sincronização pode ocorrer:

  • Continuamente, o que é típico da replicação transacional.

  • On demand, o que é típico da replicação de fusões.

  • De forma programada, o que é típico da replicação de instantâneos.

Quando uma subscrição é sincronizada, diferentes processos ocorrem consoante o tipo de replicação que está a usar:

  • Replicação de snapshots. Sincronização significa que o Distribution Agent reaplica o snapshot no Subscritor para que o esquema e os dados na base de dados por subscrição sejam consistentes com a base de dados de publicação.

    Se foram feitas modificações a dados ou esquemas no Publisher, deve ser gerado um novo snapshot para propagar as modificações ao Assinante.

  • Replicação transacional. Sincronização significa que o Distribution Agent transfere atualizações, inserções, eliminações e quaisquer outras alterações da base de dados de distribuição para o Assinante.

  • Replicação de fusão. Sincronização significa que o Merge Agent carrega alterações do Assinante para o Publisher e depois descarrega as alterações do Publisher para o Assinante. Conflitos, se existirem, são detetados e resolvidos. Os dados convergem, e o Publisher e todos os Subscritores acabam por ter os mesmos valores de dados. Se os conflitos foram detetados e resolvidos, o trabalho realizado por alguns utilizadores é alterado para resolver o conflito de acordo com as políticas que define.

As publicações de instantâneo atualizam integralmente o esquema no Assinante sempre que ocorre sincronização, pelo que todas as alterações ao esquema são aplicadas ao Assinante. A replicação transacional e a replicação por fusão também suportam as alterações de esquema mais comuns. Para obter mais informações, consulte Alterações de Esquema em Bancos de Dados de Publicação.

Para sincronizar uma subscrição push, veja Sincronizar uma subscrição push.

Para sincronizar uma subscrição de pull, veja Sincronizar uma subscrição de pull.

Para definir os horários de sincronização, consulte Especificar Horários de Sincronização.

Para visualizar e resolver conflitos de sincronização

Execução de código durante a sincronização

A replicação suporta dois métodos de execução de código durante a sincronização

  • A execução de scripts sob demanda é suportada para replicação transacional e replicação por fusão. Usando a execução de scripts on demand, podes especificar um script SQL para executar durante a sincronização. O script é copiado para o assinante e executado usando sqlcmd no início do processo de sincronização. O script não tem acesso às alterações replicadas tal como são aplicadas ao Assinante. Para mais informações, consulte Executar Scripts durante a Sincronização (Programação Transact-SQL de Replicação).

  • Os handlers de lógica de negócio são suportados para replicação de fusões. Usando o framework de gestão de lógica de negócio, pode escrever um assembly de código gerido que é chamado durante o processo de sincronização da fusão. O assembly inclui lógica de negócio que pode responder a várias condições durante a sincronização: alterações de dados, conflitos e erros. Para obter mais informações, consulte Executar lógica de negócios durante a sincronização de mesclagem.