Validade e desativação de assinatura
As assinaturas podem ser desativadas ou podem expirar se não forem sincronizadas dentro de um período de retençãoespecificado. A ação que ocorre depende do tipo de replicação e do período de retenção excedido.
Para definir períodos de retenção, consulte Definir o período de expiração para assinaturas, Definir o período de retenção de distribuição para publicações transacionais (SQL Server Management Studio)e Configurar publicação e distribuição.
Replicação transacional
A replicação transacional usa o período máximo de retenção de distribuição (o parâmetro @max_distretention de sp_adddistributiondb (Transact-SQL)) e o período de retenção de publicação (o parâmetro @retention de sp_addpublication (Transact-SQL)):
Se a assinatura não for sincronizada dentro do período de retenção máximo da distribuição (padrão de 72 horas) e houver mudanças no banco de dados de distribuição que não foram entregues ao Assinante, a assinatura será marcada como desativada pelo trabalho de Limpeza da distribuição sendo executado no Distribuidor. A assinatura deverá ser reinicializada.
Se a assinatura não for sincronizada no período de retenção máximo da publicação (padrão de 336 horas), a assinatura expirará e será descartada pelo trabalho de Limpeza de assinaturas expiradas executado no Publicador. A assinatura deverá ser criada novamente e ser sincronizada.
Se uma assinatura push expirar, ela é completamente removida, mas não as assinaturas pull. Você deve limpar as assinaturas pull no Assinante. Para obter mais informações, consulte Delete a Pull Subscription.
Replicação de mesclagem
A replicação de mesclagem usa o período de retenção de publicação (os parâmetros @retention e @retention_period_unit de sp_addmergepublication (Transact-SQL)). Quando uma assinatura expira, ela deverá ser reiniciada, pois os metadados da assinatura serão removidos. As assinaturas que não forem reinicializadas serão descartadas pelo trabalho de Limpeza de assinaturas expiradas executado no Publicador. Por padrão, este trabalho é executado diariamente, ele remove todas as assinaturas push que não sincronizaram por um período duas vezes maior do período de retenção da publicação. Por exemplo:
Se a publicação tiver um período de retenção de 14 dias, uma assinatura poderá expirar se não sincronizar dentro de 14 dias.
Se o Publicador estiver executando SQL Server 2005 ou uma versão posterior e o agente da assinatura for de SQL Server 2005 ou uma versão posterior, uma assinatura só expirará se houver alterações nos dados na partição dessa assinatura. Por exemplo, se um Assinante receber dados de cliente apenas de clientes na Alemanha. Se o período de retenção for definido em 14 dias, a assinatura expirará no 14º dia somente se ocorreram mudanças nos dados do cliente alemão nos últimos 14 dias.
Do 14º dia até 27 dias após a última sincronização, a assinatura poderá ser reinicializada.
No 28º dia após a última sincronização, a assinatura será descartada pelo trabalho de Limpeza de assinaturas expiradas . Se uma assinatura push expirar, ela é completamente removida, mas não as assinaturas pull. Você deve limpar as assinaturas pull no Assinante. Para obter mais informações, consulte Delete a Pull Subscription.
Considerações para definir o período de retenção da publicação para as publicações de mesclagem
Lembre-se das considerações a seguir ao definir o período de retenção para publicações de mesclagem:
O período de retenção para publicações de mesclagem tem um período de tolerância de 24 horas para incluir os Assinantes em fusos horários diferentes. Por exemplo, se você definir um período de retenção de um dia, o período de retenção real será de 48 horas.
A limpeza dos metadados da replicação de mesclagem depende do período de retenção da publicação:
A replicação não poderá limpar os metadados na publicação e nos bancos de dados de assinatura antes de o período de retenção ser atingido. Cuidado ao especificar um valor alto para o período de retenção, pois poderá impactar negativamente o desempenho da replicação. Recomendamos que use uma definição mais baixa se puder prevenir com certeza que todos os Assinantes sincronizarão normalmente dentro daquele período de tempo.
É possível especificar para que as assinaturas nunca expirem (um valor de 0 para a @retention), mas recomendamos não usar este valor, pois os metadados não poderão ser limpos.
O período de retenção para qualquer republicador deve ser definido com um valor igual ou inferior ao período de retenção definido no Publicador original. Você também deve usar os mesmos valores de retenção da publicação para todos os Publicadores e seus parceiros de sincronização alternativos. O uso de valores diferentes pode levar a uma não convergência. Se precisar alterar o valor de retenção da publicação, reinicialize o Assinante para evitar a não convergência de dados.
Se, após a limpeza, o período de retenção da publicação aumentar e uma assinatura tentar a mesclagem com o Publicador (que já excluiu os metadados), a assinatura não expirará devido ao aumento no valor da retenção. Porém, o Publicador não tem metadados suficientes para baixar as mudanças para o Assinante, o que resulta em uma não convergência.
Consulte Também
Reinicializar as assinaturas
Administração do agente de replicação
Assinar publicações