Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Managed Instance
A replicação de snapshot distribui os dados exatamente como aparecem em um momento específico e não monitora atualizações dos dados. Quando a sincronização ocorre, todo o snapshot é gerado e enviado aos assinantes.
Observação
A replicação de instantâneo pode ser usada por si só, mas o processo de instantâneo (que cria uma cópia de todos os objetos e dados especificados por uma publicação) também é comumente usado para fornecer o conjunto inicial de dados e objetos de banco de dados para publicações transacionais e de mesclagem.
O uso da replicação de snapshot por si só é mais apropriado quando um ou mais dos seguintes cenários são verdadeiros:
- Os dados mudam com pouca frequência.
- Cópias de dados que estão desatualizados em relação ao Editor por um período de tempo.
- Replicação de pequenos volumes de dados.
- Um grande volume de alterações ocorre durante um curto período de tempo.
A replicação de snapshot é mais apropriada quando as alterações de dados são substanciais, mas pouco frequentes. Por exemplo, se uma organização de vendas mantiver uma lista de preços de produtos e os preços forem todos atualizados ao mesmo tempo uma ou duas vezes por ano, você deverá replicar todo o instantâneo de dados depois que ele for alterado. Dado certos tipos de dados, instantâneos mais frequentes também podem ser apropriados. Por exemplo, se uma tabela relativamente pequena for atualizada no Publisher durante o dia, mas alguma latência for aceitável, as alterações poderão ser entregues todas as noites como um instantâneo.
A replicação de snapshot tem uma sobrecarga contínua menor no Publisher do que a replicação transacional, porque as alterações incrementais não são controladas. No entanto, se o conjunto de dados que está sendo replicado for grande, ele exigirá recursos substanciais para gerar e aplicar o instantâneo. Considere o tamanho de todo o conjunto de dados e a frequência das alterações nos dados ao avaliar se a replicação de snapshot deve ser utilizada.
Como funciona a replicação de snapshot
Por padrão, todos os três tipos de replicação usam um instantâneo para inicializar os assinantes. O SQL Server Snapshot Agent sempre gera os arquivos de instantâneo, mas o agente que entrega os arquivos difere dependendo do tipo de replicação que está sendo usado. A replicação de instantâneo e a replicação transacional usam o Distribution Agent para entregar os arquivos, enquanto a replicação de mesclagem usa o SQL Server Merge Agent. O Snapshot Agent é executado no Distribuidor. O Agente de Distribuição e o Agente de Mesclagem são executados no Distribuidor para assinaturas push ou em Assinantes para assinaturas pull.
Os instantâneos podem ser gerados e aplicados imediatamente após a criação da assinatura ou de acordo com um cronograma definido no momento em que a publicação é criada. O Snapshot Agent prepara arquivos de instantâneo contendo o esquema e os dados de tabelas e objetos de banco de dados publicados, armazena os arquivos na pasta de instantâneo para o Publicador e registra informações de rastreamento no banco de dados de distribuição no Distribuidor. Você especifica uma pasta de instantâneo padrão ao configurar um Distribuidor, mas pode especificar um local alternativo para uma publicação em vez de ou além do padrão.
Além do processo de snapshot padrão descrito neste artigo, um processo de snapshot de duas partes é usado para mesclar publicações com filtros parametrizados.
A ilustração a seguir mostra os principais componentes da replicação de instantâneos.
Configurar a criptografia TLS 1.3
O SQL Server 2025 (17.x) introduz suporte TDS 8.0 para replicação de snapshots, que inclui:
- Configuração de agentes de replicação para usar encriptação TLS 1.3 entre instâncias do SQL Server 2025 (17.x) e também entre SQL Server 2025 (17.x) e Azure SQL Managed Instance.
- Encriptação padrão para comunicação entre servidores ligados de instâncias do SQL Server 2025 (17.x) numa topologia de replicação. Os servidores ligados no SQL Server 2025 (17.x) utilizam o driver OLE DB v19, que usa encriptação por defeito
Encrypt=Mandatory.
Observação
Para topologias de replicação com um distribuidor remoto:
Agente de instantâneo
Para replicação de mesclagem, um snapshot é gerado sempre que o Snapshot Agent é executado. Para replicação transacional, a geração de instantâneos depende da configuração da propriedade immediate_syncde publicação. Se a propriedade estiver definida como true (o padrão ao usar o Assistente para Nova Publicação), um instantâneo será gerado sempre que o Snapshot Agent for executado e poderá ser aplicado a um Assinante a qualquer momento. Se a propriedade estiver definida como false (o padrão ao usar sp_addpublication), o snapshot será gerado somente se uma nova assinatura tiver sido adicionada desde a última execução do Snapshot Agent; Os assinantes devem aguardar a conclusão do Snapshot Agent antes de poderem sincronizar.
O Snapshot Agent executa as seguintes etapas:
Estabelece uma conexão do Distribuidor com o Editor e, em seguida, faz bloqueios em tabelas publicadas, se necessário:
Para publicações de mesclagem, o Snapshot Agent não usa bloqueios.
Para publicações transacionais, por padrão, o Snapshot Agent usa bloqueios somente durante a fase inicial de geração de snapshot.
Para publicações de snapshot, os bloqueios são mantidos durante todo o processo de geração de snapshot.
Grava uma cópia do esquema de tabela para cada artigo em um
.scharquivo. Mais arquivos de script são gerados se outros objetos de banco de dados forem publicados, como índices, restrições, procedimentos armazenados, exibições, funções definidas pelo usuário e assim por diante.Copia os dados da tabela publicada no Publisher e grava os dados na pasta de instantâneo. O instantâneo é gerado como um conjunto de arquivos de programa de cópia em massa (BCP).
Para publicações transacionais e de instantâneo, o Snapshot Agent acrescenta linhas às
MSrepl_commandstabelas eMSrepl_transactionsno banco de dados de distribuição. As entradas naMSrepl_commandstabela são comandos que indicam a localização de e.scharquivos, quaisquer outros arquivos de.bcpinstantâneo e referências a quaisquer scripts pré ou pós-instantâneo. As entradas naMSrepl_transactionstabela são comandos relevantes para sincronizar o Assinante.Para publicações de mesclagem, o Snapshot Agent executa etapas extras.
Libera todos os bloqueios em tabelas publicadas.
Durante a geração de instantâneos, não é possível fazer alterações de esquema em tabelas publicadas. Depois que os arquivos de instantâneo são gerados, você pode visualizá-los na pasta de instantâneo usando o Windows Explorer.
Agente de distribuição e agente de mesclagem
Para publicações de instantâneo, cada vez que o Distribution Agent é executado para a publicação, ele move um novo snapshot para cada Assinante que:
- ainda não está sincronizado,
- está marcado para reinicialização, ou
- inclui novos artigos.
Para replicação de snapshot e transacional, o Distribution Agent executa as seguintes etapas:
Estabelece uma ligação ao Distribuidor.
Examina as
MSrepl_commandstabelas eMSrepl_transactionsno banco de dados de distribuição no Distribuidor. O agente lê o local dos arquivos de instantâneo da primeira tabela e os comandos de sincronização do assinante de ambas as tabelas.Aplica o esquema e os comandos ao banco de dados de assinatura.
Para uma publicação de replicação de mesclagem não filtrada, o Merge Agent executa as seguintes etapas:
Estabelece uma conexão com o Editor.
Examina a
sysmergeschemachangetabela no Editor e determina se há um novo instantâneo que deve ser aplicado no Assinante.Se um novo snapshot estiver disponível, o Merge Agent aplicará ao banco de dados de assinatura os arquivos de snapshot do local especificado em
sysmergeschemachange.