Compartilhar via


Inicializar uma assinatura manualmente

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

Este tópico descreve como inicializar uma assinatura manualmente no SQL Server usando o SQL Server Management Studio ou o Transact-SQL. Embora o instantâneo inicial seja normalmente usado para inicializar uma assinatura, as assinaturas para publicações podem ser inicializadas sem o uso de um instantâneo, desde que o esquema e os dados iniciais já estejam presentes no assinante.

Antes de começar

Limitações e Restrições

  • Por exemplo, se houver atividade em um banco de dados publicado que usa replicação transacional entre a hora que os dados e o esquema são copiados no Assinante e a hora em que a assinatura é inicializada manualmente, talvez as alterações resultantes dessa atividade não sejam replicadas no Assinante.

Como usar o SQL Server Management Studio.

Inicialize manualmente uma assinatura a uma publicação, copiando o esquema (e normalmente dados) ao banco de dados da assinatura. O esquema e os dados devem corresponder ao banco de dados de publicação. Então especifique que a assinatura não requer esquema e dados na página Inicializar Assinaturas do Assistente de Novas Assinaturas. Para mais informações sobre como acessar esse assistente, consulte Initialize a Transactional Subscription Without a Snapshot e Create a Pull Subscription.

Quando você sincroniza a assinatura pela primeira vez, os objetos e metadados exigidos pela replicação são copiados para o banco de dados da assinatura.

Para inicializar manualmente uma assinatura para uma publicação.

  1. Certifique-se que o esquema e dados são copiados para o banco de dados da assinatura.

  2. Desmarque a caixa de seleção Inicializar na página Inicializar Assinaturas do Assistente para Novas Assinaturas. Faça isto para cada assinatura que exige apenas que objetos de replicação e metadados sejam copiados.

Usando o Transact-SQL

As assinaturas podem ser inicializadas manualmente usando procedimentos de replicação armazenados.

Para inicializar manualmente uma assinatura pull para uma publicação transacional

  1. Certifique-se que o esquema e dados existam no banco de dados da assinatura. Para obter mais informações, consulte Initialize a Transactional Subscription Without a Snapshot.

  2. No Publicador do banco de dados da publicação, execute sp_addsubscription. Especifique @publication, @subscriber, o nome do banco de dados no Assinante que contém os dados publicados para @destination_db, o valor pull para @subscription_type, e o valor replication support only para @sync_type. Para obter mais informações, consulte Create a Pull Subscription.

  3. No Assinante, execute sp_addpullsubscription. Para atualizar assinaturas, consulte Create an Updatable Subscription to a Transactional Publication.

  4. No Assinante, execute sp_addpullsubscription_agent. Para obter mais informações, consulte Create a Pull Subscription.

  5. Inicie o Distribution Agent para transferir objetos de replicação e baixe as alterações mais recentes do Publicador. Para obter mais informações, consulte Synchronize a Pull Subscription.

Para inicializar manualmente uma assinatura push para uma publicação transacional

  1. Certifique-se que o esquema e dados existam no banco de dados da assinatura. Para obter mais informações, consulte Initialize a Transactional Subscription Without a Snapshot.

  2. No Publicador do banco de dados da publicação, execute sp_addsubscription. Especifique o nome do banco de dados no Assinante que contém os dados publicados para @destination_db, o valor push para @subscription_type, e o valor replication support only para @sync_type. Para atualizar assinaturas, consulte Create an Updatable Subscription to a Transactional Publication.

  3. No Publicador do banco de dados de publicação, execute sp_addpushsubscription_agent. Para obter mais informações, consulte Create a Push Subscription.

  4. Inicie o Distribution Agent para transferir objetos de replicação e baixe as alterações mais recentes do Publicador. Para obter mais informações, consulte Synchronize a Push Subscription.

Para inicializar manualmente uma assinatura pull para uma publicação de mesclagem

  1. Certifique-se que o esquema e dados existam no banco de dados da assinatura. Isso pode ser feito restaurando um backup do banco de dados de publicação no Assinante.

  2. No Publicador, execute sp_addmergesubscription. Especifique @publication, @subscriber, @subscriber_db, e o valor pull para @subscription_type. Isso registra a assinatura pull.

  3. No Assinante, no banco de dados que contém os dados publicados, execute sp_addmergepullsubscription. Especifique o valor none para @sync_type.

  4. No Assinante, execute o sp_addmergepullsubscription_agent. Para obter mais informações, consulte Create a Pull Subscription.

  5. Inicie o Agente de Mesclagem para transferir objetos de replicação e baixe as alterações mais recentes do Publicador. Para obter mais informações, consulte Synchronize a Pull Subscription.

Para inicializar manualmente uma assinatura push para uma publicação de mesclagem

  1. Certifique-se que o esquema e dados existam no banco de dados da assinatura. Isso pode ser feito restaurando um backup do banco de dados de publicação no Assinante.

  2. No Publicador, no banco de dados da publicação, execute sp_addmergesubscription. Especifique o nome do banco de dado no Assinante que contém os dados publicados para @subscriber_db, o valor push para @subscription_typee o valor none para @sync_type.

  3. No Publicador, no banco de dados da publicação, execute sp_addmergepushsubscription_agent. Para obter mais informações, consulte Create a Push Subscription.

  4. Inicie o Agente de Mesclagem para transferir objetos de replicação e baixe as alterações mais recentes do Publicador. Para obter mais informações, consulte Synchronize a Push Subscription.