Inicialize uma Subscrição Manualmente

Aplica-se a: SQL ServerAzure SQL Managed Instance

Este tópico descreve como inicializar manualmente uma subscrição no SQL Server utilizando o SQL Server Management Studio ou Transact-SQL. Embora o snapshot inicial seja normalmente usado para inicializar uma subscrição, as subscrições de publicações podem ser iniciadas sem usar snapshot, desde que o esquema e os dados iniciais já estejam presentes no assinante.

Limitações e Restrições

  • Se houver atividade numa base de dados publicada usando replicação transacional entre o momento em que os dados e o esquema são copiados para o Assinante e o momento em que a subscrição é manualmente inicializada, as alterações resultantes desta atividade podem não ser replicadas para o Assinante.

Usando o SQL Server Management Studio

Inicialize manualmente uma subscrição de uma publicação copiando o esquema (e normalmente os dados) para a base de dados de subscrição. O esquema e os dados devem corresponder à base de dados da publicação. Depois especifica que a subscrição não requer esquema e dados na página Inicializar Subscrições do Assistente de Nova Subscrição. Para mais informações sobre como aceder a este assistente, consulte Inicializar uma Subscrição Transacional Sem Snapshot e Criar uma Subscrição Pull.

Quando sincroniza a subscrição pela primeira vez, os objetos e metadados necessários pela replicação são copiados para a base de dados da subscrição.

Para inicializar manualmente uma subscrição de uma publicação

  1. Certifique-se de que o esquema e os dados são copiados para a base de dados de subscrição.

  2. Desative a caixa de seleção Inicializar na página Inicializar Subscrições do Assistente de Nova Subscrição. Faça isto para cada subscrição que exija apenas a cópia de objetos de replicação e metadados.

Usando Transact-SQL

As subscrições podem ser inicializadas manualmente utilizando procedimentos armazenados de replicação.

Para inicializar manualmente uma subscrição de solicitação para uma publicação transacional

  1. Certifique-se de que o esquema e os dados existem na base de dados por subscrição. Para obter mais informações, consulte Inicializar uma subscrição transacional sem instantâneo.

  2. No Publisher da base de dados de publicações, execute sp_addsubscription. Especifique @publication, @subscriber, o nome da base de dados no Assinante contendo os dados publicados para @destination_db, um valor de pull para @subscription_type e um valor de suporte de replicação apenas para @sync_type. Para mais informações, consulte Criar uma Subscrição Pull.

  3. No Assinante, execute sp_addpullsubscription. Para atualizar subscrições, veja Criar uma Subscrição Atualizável para uma Publicação Transacional.

  4. No Assinante, execute sp_addpullsubscription_agent. Para mais informações, consulte Criar uma Subscrição Pull.

  5. Inicie o Distribution Agent para transferir objetos de replicação e descarregar as últimas alterações do Publisher. Para mais informações, consulte Sincronizar uma Subscrição Pull.

Para inicializar manualmente uma subscrição push a uma publicação transacional

  1. Certifique-se de que o esquema e os dados existem na base de dados por subscrição. Para obter mais informações, consulte Inicializar uma subscrição transacional sem instantâneo.

  2. No Publisher da base de dados de publicações, execute sp_addsubscription. Especifique o nome da base de dados no Assinante que contém os dados publicados para @destination_db, um valor de push para @subscription_type e um valor de suporte de replicação apenas para @sync_type. Para atualizar subscrições, veja Criar uma Subscrição Atualizável para uma Publicação Transacional.

  3. No Publisher da base de dados de publicações, execute sp_addpushsubscription_agent. Para mais informações, consulte Criar uma Subscrição Push.

  4. Inicie o Distribution Agent para transferir objetos de replicação e descarregar as últimas alterações do Publisher. Para mais informações, consulte Sincronizar uma Subscrição Push.

Para inicializar manualmente uma subscrição pull a uma publicação de fusão

  1. Certifique-se de que o esquema e os dados existem na base de dados por subscrição. Isto pode ser feito restaurando uma cópia de segurança da base de dados de publicações junto do Assinante.

  2. No Publicador, execute sp_addmergesubscription. Especifique @publication, @subscriber, @subscriber_db e um valor de pull para @subscription_type. Isto regista a subscrição de pull.

  3. No assinante, na base de dados que contém os dados publicados, execute sp_addmergepullsubscription. Especifique um valor de nenhum para @sync_type.

  4. No Assinante, execute sp_addmergepullsubscription_agent. Para mais informações, consulte Criar uma Subscrição Pull.

  5. Inicie o Merge Agent para transferir objetos de replicação e descarregar as alterações mais recentes do Publisher. Para mais informações, consulte Sincronizar uma Subscrição Pull.

Para inicializar manualmente uma subscrição push a uma publicação de fusão

  1. Certifique-se de que o esquema e os dados existem na base de dados por subscrição. Isto pode ser feito restaurando uma cópia de segurança da base de dados de publicações junto do Assinante.

  2. No Publisher da base de dados de publicações, execute sp_addmergesubscription. Especifique o nome da base de dados no Subscritor que contém os dados publicados para @subscriber_db, um valor de push para @subscription_type e um valor de none para @sync_type.

  3. No Publisher da base de dados de publicações, execute sp_addmergepushsubscription_agent. Para mais informações, consulte Criar uma Subscrição Push.

  4. Inicie o Merge Agent para transferir objetos de replicação e descarregar as alterações mais recentes do Publisher. Para mais informações, consulte Sincronizar uma Subscrição Push.