Compartilhar via


Como reinicializar uma assinatura (Programação Transact-SQL de replicação)

Assinaturas individuais podem ser marcadas para reinicialização, para que durante a próxima sincronização, um novo instantâneo seja aplicado. As assinaturas podem ser reinicializadas forma programática, usando procedimentos de replicação armazenados. O procedimento armazenado usado depende do tipo de assinatura (push ou pull) e o tipo de publicação ao qual a assinatura pertence.

Para reinicializar uma assinatura pull para uma publicação transacional.

  1. No Assinante do banco de dados de assinatura, execute sp_reinitpullsubscription (Transact-SQL). Especifique @publisher, @publisher_db, e @publication. Isso marca a assinatura para reinicialização na próxima vez que o Distribution Agent for executado.

  2. (Opcional) Iniciar o Distribution Agent no Assinante para sincronizar a assinatura. Para obter mais informações, consulte Como sincronizar uma assinatura pull (Programação de replicação).

Para reinicializar uma assinatura push para uma publicação transacional.

  1. No Publicador, execute sp_reinitsubscription (Transact-SQL). Especifique @publication, @subscriber, e @destination_db. Isso marca a assinatura para reinicialização na próxima vez que o Distribution Agent for executado.

  2. (Opcional) Iniciar o Distribution Agent no Distributor para sincronizar a assinatura. Para obter mais informações, consulte Como sincronizar uma assinatura push (Programação de replicação).

Para reinicializar uma assinatura pull para uma publicação de mesclagem.

  1. No Assinante do banco de dados de assinatura, execute sp_reinitmergepullsubscription (Transact-SQL). Especifique @publisher, @publisher_db, e @publication. Para carregar alterações do Assinante antes que a reinicialização ocorra, especifique um valor de true para @upload_first. Isso marca a assinatura para reinicialização na próxima vez que o Merge Agent for executado.

    Observação importanteImportante

    Se você adicionar, descartar ou alterar um filtro com parâmetros, as alterações pendentes no Assinante não poderão ser carregadas no Publicador durante a reinicialização. Se deseja carregar as alterações pendentes, sincronize todas as assinaturas antes de alterar o filtro.

  2. (Opcional) Iniciar o Merge Agent no Assinante para sincronizar a assinatura. Para obter mais informações, consulte Como sincronizar uma assinatura pull (Programação de replicação).

Para reinicializar uma assinatura push para uma publicação de mesclagem.

  1. No Publicador, execute sp_reinitmergesubscription (Transact-SQL). Especifique @publication, @subscriber e @subscriber_db. Para carregar alterações do Assinante antes que a reinicialização ocorra, especifique um valor de true para @upload_first. Isso marca a assinatura para reinicialização na próxima vez que o Distribution Agent for executado.

    Observação importanteImportante

    Se você adicionar, descartar ou alterar um filtro com parâmetros, as alterações pendentes no Assinante não poderão ser carregadas no Publicador durante a reinicialização. Se deseja carregar alterações pendentes, sincronize todas as assinaturas antes de alterar o filtro.

  2. (Opcional) Iniciar o Merge Agent no Distributor para sincronizar a assinatura. Para obter mais informações, consulte Como sincronizar uma assinatura push (Programação de replicação).

Para definir a política de reinicialização ao criar uma nova publicação de mesclagem

  • No Publicador do banco de dados de publicação, execute sp_addmergepublication, especificando um dos valores a seguir para @automatic_reinitialization_policy:

    • 1 - alterações são carregadas do Assinante antes que a assinatura seja reinicializada automaticamente, de acordo com a alteração feita na publicação.

    • 0 - alterações no Assinante são descartadas quando uma assinatura é reinicializada automaticamente, de acordo com a alteração feita na publicação.

    Observação importanteImportante

    Se você adicionar, descartar ou alterar um filtro com parâmetros, as alterações pendentes no Assinante não poderão ser carregadas no Publicador durante a reinicialização. Se deseja carregar alterações pendentes, sincronize todas as assinaturas antes de alterar o filtro.

    Para obter mais informações, consulte Como criar uma publicação (Programação Transact-SQL de replicação).

Para alterar a diretiva de reinicialização para uma publicação de mesclagem existente

  • No Publicador do banco de dados de publicação, execute sp_changemergepublication, especificando automatic_reinitialization_policy para @property e um dos seguintes valores para @value:

    • 1 - alterações são carregadas do Assinante antes que a assinatura seja reinicializada automaticamente, de acordo com a alteração feita na publicação.

    • 0 - alterações no Assinante são descartadas quando uma assinatura é reinicializada automaticamente, de acordo com a alteração feita na publicação.

    Observação importanteImportante

    Se você adicionar, descartar ou alterar um filtro com parâmetros, as alterações pendentes no Assinante não poderão ser carregadas no Publicador durante a reinicialização. Se deseja carregar alterações pendentes, sincronize todas as assinaturas antes de alterar o filtro.

    Para obter mais informações, consulte Como exibir e modificar propriedades de publicação (Programação Transact-SQL de replicação).