Compartilhar via


Inicializar uma Subscription Transacional sem um Snapshot

Por padrão, uma assinatura de uma publicação transacional é inicializada com um instantâneo, que é gerado pelo Agente de Instantâneo e aplicado pelo Agente de Distribuição. Em alguns cenários, como aqueles que envolvem grandes conjuntos de dados iniciais, é preferível inicializar uma assinatura usando outro método. Outros métodos de inicialização de um Assinante incluem:

  • Especificando um backup. Restaure o backup no Assinante e, em seguida, o Agente de Distribuição copia os metadados de replicação necessários e os procedimentos do sistema. Inicializar com um backup é a maneira mais rápida de entregar dados ao Assinante e é conveniente, pois qualquer backup recente pode ser usado se ele foi feito depois que a publicação foi habilitada para inicialização com um backup.

  • Copiar um conjunto de dados inicial para o Assinante por meio de outro mecanismo, como anexar um banco de dados. Você deve garantir que os dados e o esquema corretos estejam no Assinante e, em seguida, o Agente de Distribuição copie todos os metadados e procedimentos do sistema necessários.

Inicializando uma assinatura com um backup

Um backup contém um banco de dados inteiro; Portanto, cada banco de dados de assinatura conterá uma cópia completa do banco de dados de publicação quando ele for inicializado:

  • O backup inclui tabelas não especificadas para serem artigos na publicação.

  • O backup inclui todos os dados, mesmo se filtros de linha ou coluna forem especificados em uma tabela.

É responsabilidade do administrador ou aplicativo remover quaisquer objetos ou dados indesejados após a restauração do backup. Nas sincronizações subsequentes, as alterações de dados só serão replicadas se forem aplicadas a tabelas especificadas como artigos e as alterações atenderem a quaisquer critérios de filtragem especificados.

Observação

Ao restaurar um backup, você deve garantir que o backup veio do Publicador se quiser que o Assinante seja sincronizado automaticamente. Os valores LSN (número de sequência de log) no backup (que são usados para definir o ponto no qual iniciar a sincronização) são específicos para o Publicador.

Para inicializar uma assinatura com um backup

Para inicializar uma assinatura com um backup, primeiro você deve habilitar a opção ao criar uma publicação e, em seguida, especificar valores para várias opções ao criar uma assinatura. As publicações podem ser habilitadas por meio do Assistente para Nova Publicação ou programaticamente. No entanto, os valores necessários para as opções de assinatura só podem ser especificados programaticamente.

Observação

Se uma assinatura for inicializada sem usar um instantâneo, a conta na qual o serviço do SQL Server é executado no Publicador deverá ter permissões de gravação na pasta de instantâneo no Distribuidor. Para obter mais informações sobre permissões, consulte o Modelo de Segurança do Agente de Replicação.

Garantindo a adequação de um backup

Um backup é adequado para inicializar um Assinante se todas as transações que ocorrem depois que o backup foi feito forem armazenadas no Distribuidor. A replicação exibirá uma mensagem de erro se o backup não for adequado.

Para ajudar a garantir que um backup seja adequado para uso, siga estas diretrizes:

  • Use o backup mais recente disponível e, se o backup mais recente for mais antigo que o período máximo de retenção de distribuição, crie um novo backup antes de tentar inicializar uma assinatura com um backup. Para obter mais informações sobre o período de retenção, consulte Expiração e Desativação da Assinatura.

  • Por padrão, a tarefa de limpeza de distribuição remove transações com mais de 72 horas do banco de dados de distribuição. A limpeza é baseada no período de retenção definido para a publicação. Ao sincronizar com backups mais antigos, considere desabilitar temporariamente a tarefa antes do backup que você deseja restaurar e reativá-la depois que a assinatura for criada com sucesso. Isso impede a remoção de transações do banco de dados de distribuição que podem ser necessárias para sincronizar com êxito do backup. Para obter informações sobre como executar trabalhos de limpeza, consulte Executar Trabalhos de Manutenção de Replicação (SQL Server Management Studio).

Em alguns casos, você deve executar manualmente personalizações no banco de dados do Assinante restaurado depois de configurar assinaturas que são inicializadas com um backup. Em geral, as modificações manuais no banco de dados do Assinante restaurado serão necessárias se a Publicação for definida de forma que o conteúdo do banco de dados do Assinante seja diferente do conteúdo do banco de dados do Publicador.

  • As exibições indexadas no banco de dados restaurado devem ser convertidas em tabelas se forem publicadas como artigos de exibição indexada para tabela baseados em log.

  • As colunas de timestamp assinadas no banco de dados restaurado devem ser convertidas para colunas binary(8): copie o conteúdo das tabelas que contêm colunas de timestamp para novas tabelas com esquemas correspondentes, exceto com colunas binary(8) no lugar das colunas de timestamp, remova as tabelas originais e renomeie as novas tabelas com os mesmos nomes das tabelas originais.

Inicializando uma assinatura com um método alternativo

É possível inicializar uma assinatura usando qualquer método que permita copiar o esquema e os dados do banco de dados de publicação para o Assinante, como o Integration Services. Quando você usa um método alternativo para inicializar o Assinante, os objetos de suporte de replicação são copiados para o Assinante.

Ao contrário da inicialização com um backup, você ou seu aplicativo deve garantir que os dados e o esquema sejam sincronizados corretamente no momento em que você adicionar a assinatura. Se, por exemplo, houver atividade no Publicador entre a hora em que os dados e o esquema são copiados para o Assinante e o momento em que a assinatura é adicionada, as alterações resultantes dessa atividade podem não ser replicadas para o Assinante.

Para inicializar uma assinatura com um método alternativo, consulte Inicializar uma assinatura manualmente.

Consulte Também

Inicializar uma Assinatura