Compartilhar via


Definir o período de validade da assinatura

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure

Este tópico descreve como definir o período de validade de assinaturas no SQL Server usando o SQL Server Management Studio ou o Transact-SQL. O período de validade das assinaturas determina o período de tempo antes de uma assinatura expirar e ser removida. Para obter mais informações, consulte Subscription Expiration and Deactivation.

Neste tópico

Antes de começar

Recomendações

  • O período de validade da assinatura também é referenciado como o período de retenção da publicação. A limpeza dos metadados de replicação de mesclagem depende dessa configuraçã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.

      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.

    • É possível especificar para que as assinaturas nunca expirem, mas recomendamos não usar este valor, pois os metadados não poderão ser limpos.

Como usar o SQL Server Management Studio.

Defina o período de expiração da assinatura na página Geral da caixa de diálogo Propriedades de Publicação – <Publicação>. Para obter mais informações sobre como acessar essa caixa de diálogo, consulte View and Modify Publication Properties.

Para definir o período de validade da assinatura

  1. Na seção Expiração da assinatura na página Geral da caixa de diálogo Propriedades de Publicação – <Publicação>, especifique se as assinaturas devem expirar.

  2. Caso devam vencer, especifique um período de tempo para o vencimento.

Usando o Transact-SQL

Você pode usar os procedimentos armazenados de replicação para definir este valor quando uma publicação é criada ou para modificar este valor posteriormente.

Para definir o período de validade de uma assinatura de um instantâneo ou publicação transacional

  1. No Publicador, execute sp_addpublication. Especifique o período de validade de assinatura desejado, em horas, para @retention. O período de validade padrão é de 336 horas. Para obter mais informações, consulte Criar uma assinatura.

Para definir o período de validade para uma assinatura de uma publicação de mesclagem

  1. No Publicador, execute sp_addmergepublication. Especifique o valor desejado para o período de validade da assinatura como @retention. Especifique as unidades nas quais o período de validade é expressado para @ retention_period_unit, que pode ser um dos seguintes:

    • 1 = semana

    • 2 = mês

    • 3 = ano

    O período de validade padrão é de 14 dias. Para obter mais informações, consulte Criar uma assinatura.

Para alterar o período de validade de uma assinatura de um instantâneo ou publicação transacional

  1. No Publicador, execute sp_changepublication. Especifique a retenção para @property e o novo período de validade da assinatura, em horas, para @value.

Para alterar o período de validade para uma assinatura de uma publicação de mesclagem

  1. No Publicador, execute sp_helpmergepublication, especificando @publication e @publisher. Observe o valor de retention_period_unit no conjunto de resultados que pode ser um dos seguintes:

    • 0 = dia|

    • 1 = semana

    • 2 = mês

    • 3 = ano

  2. No Publicador, execute sp_changemergepublication. Especifique a retenção para @property e o novo período de validade da assinatura, com base no texto sobre unidade de período de retenção da etapa 1, para @value.

  3. (Opcional) No Editor, execute sp_changemergepublication. Especifique retention_period_unit para @property e uma nova unidade para o período de validade da assinatura para @value.