Remover manualmente a replicação no SQL Server

Este artigo explica como remover manualmente a replicação no SQL Server.

Versão original do produto: SQL Server
Número de KB original: 324401

Resumo

Este artigo descreve como remover uma replicação de um computador que está executando o Microsoft SQL Server. Para remover uma replicação, você deve soltar as assinaturas, as publicações e o distribuidor configurado para a replicação. Você pode remover a replicação executando o script Transact-SQL gerado pelo SQL Server Enterprise Manager ou SQL Server Management Studio. No entanto, se você não puder gerar o script Transact-SQL para remover a replicação, poderá remover manualmente a replicação usando procedimentos armazenados pelo sistema e outras instruções Transact-SQL. Este artigo contém informações sobre procedimentos armazenados pelo sistema que podem ser usados nesse processo.

Observação

Para obter mais informações sobre os procedimentos armazenados do sistema mencionados neste artigo, consulte SQL Server Livros Online.

Remover manualmente uma replicação

Você pode remover manualmente uma replicação usando procedimentos armazenados pelo sistema e outras instruções Transact-SQL. Para remover completamente uma replicação, siga estas etapas:

  1. Solte todas as assinaturas configuradas para a replicação.
  2. Solte todas as publicações configuradas para a replicação.
  3. Solte o distribuidor configurado para a replicação.

Observação

Os procedimentos armazenados do sistema para cada tipo de replicação são listados posteriormente neste artigo. Use os procedimentos armazenados apropriados, dependendo do tipo de replicação que você deseja remover.

Soltar as assinaturas

Para remover as assinaturas de uma instância de SQL Server, você pode usar os seguintes procedimentos armazenados e os parâmetros apropriados:

  • sp_dropsubscription : você pode usar o procedimento armazenado do sp_dropsubscription sistema para soltar assinaturas em um determinado artigo, publicação ou conjunto de assinaturas no Publisher. Você deve executar o procedimento armazenado no servidor Publisher no banco de dados de publicação.

  • sp_droppullsubscription : você pode usar o procedimento armazenado do sp_droppullsubscription sistema para soltar uma assinatura no banco de dados atual do Assinante. Você deve executar o procedimento armazenado no Assinante no banco de dados de assinatura pull.

  • sp_dropmergesubscription: você pode usar o procedimento armazenado do sp_dropmergesubscription sistema para soltar uma assinatura para uma publicação de mesclagem e para o Agente de Mesclagem associado à publicação de mesclagem. Você deve executar o procedimento armazenado no servidor Publisher no banco de dados de publicação.

  • sp_dropmergepullsubscription : você pode usar o procedimento armazenado do sp_dropmergepullsubscription sistema para soltar uma assinatura de pull de mesclagem. Você deve executar o procedimento armazenado no Assinante no banco de dados de assinatura pull.

Soltar assinaturas de instantâneo

Para remover uma assinatura por push para todos os artigos de uma publicação instantâneo, execute o seguinte script no Publisher:

USE < **Publication database name** >
GO
EXEC sp_dropsubscription @publication = N'<Publication name>', @article = N'all', @subscriber = N'all', @destination_db = N'all'

Para soltar uma assinatura de pull instantâneo para todos os artigos de uma publicação instantâneo, siga estas etapas:

  1. Execute o seguinte script SQL no Assinante:

    USE < **Subscription database name** >
    GO
    EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publication database name>', @publication = N'<Publication name>'
    
  2. Execute o seguinte script no Publisher:

    USE < **Publication database name** >
    GO
    EXEC sp_dropsubscription @publication=N'<Publication name>', @subscriber = N'<Subscriber server name>', @article = N'all', @destination_db = N'all'
    

Soltar uma assinatura transacional

Para remover uma assinatura push para todos os artigos de uma publicação transacional, execute o seguinte script no Publisher:

USE < **Publication database name** >
GO
EXEC sp_dropsubscription @publication = N'<Publication name>', @article = N'all', @subscriber = N'all', @destination_db = N'all'

Para remover uma assinatura pull para todos os artigos de uma publicação transacional, siga estas etapas:

  1. Execute o seguinte script no Assinante:

    USE < **Subscription database name** >
    GO
    EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>', @publication = N'<Publication name>'
    
  2. Execute o seguinte script no Publisher:

    USE < **Publication database name** >
    GO
    EXEC sp_dropsubscription @publication =N'<Publication name>', @subscriber = N'<Subscriber server name>', @article = N'all', @destination_db = N'<Destination database name>'
    

Soltar uma assinatura de mesclagem

Para soltar uma assinatura por push, execute o seguinte script no Publisher:

USE < **Publication database name** >
GO
EXEC sp_dropmergesubscription @publication = N'<Publication name>', @subscriber = N'<Publisher server name>', @subscriber_db = N'<Subscription database name>', @subscription_type = N'push'

Para soltar uma assinatura pull, siga estas etapas:

  1. Execute o seguinte script no Assinante:

    USE < **Subscription database name** >
    GO
    EXEC sp_dropmergepullsubscription @publication = N'<Publication name>', @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>'
    
  2. Execute o seguinte script no Publisher:

    USE < **Publication database name** >
    GO
    EXEC sp_dropmergesubscription @subscription_type = N'pull', @publication = N'<Publication name>', @subscriber = N'<Subscriber server name>', @subscriber_db = N'<Subscription database name>'
    

Soltar as publicações

Depois de remover todas as assinaturas que assinam uma publicação, você poderá remover a publicação. Depois de remover as publicações no banco de dados de publicação, você deve definir a opção de banco de dados de replicação para o banco de dados de publicação como false. Para remover uma publicação, você pode usar os seguintes procedimentos armazenados do sistema:

  • sp_droppublication: você pode usar o procedimento armazenado do sp_droppublication sistema para descartar uma publicação e os artigos associados à publicação. Você deve executar o procedimento armazenado no Publisher no banco de dados de publicação.
  • sp_dropmergepublication: você pode usar o procedimento armazenado do sp_dropmergepublication sistema para descartar uma publicação de mesclagem e o Agente de Instantâneo associado à publicação de mesclagem. Os artigos associados à publicação também são descartados. Você deve executar o procedimento armazenado no Publisher no banco de dados de publicação.
  • sp_replicationdboption: você pode usar o procedimento armazenado do sp_replicationdboption sistema para definir uma opção de banco de dados de replicação para o banco de dados atual. Você deve executar o procedimento armazenado no servidor Publisher.

Para soltar uma publicação instantâneo, execute o seguinte script no Publisher:

USE < **Publication database name** >
GO
EXEC sp_droppublication @publication = N'<Publication name>'

USE master
GO
exec sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'publish', @value = N'false'

Para soltar uma publicação transacional, execute o seguinte script no Publisher:

USE < **Publication database name** >
GO
EXEC sp_droppublication @publication = N'<Publication name>'

USE master
GO
EXEC sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'publish', @value = N'false'

Para soltar uma publicação de mesclagem, execute o seguinte script no Publisher:

USE < **Publication database name** >
GO
EXEC sp_dropmergepublication @publication = N'<Publication name>'

USE master
GO
EXEC sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'merge publish', @value = N'false'

Soltar o distribuidor

Depois de soltar todas as assinaturas e as publicações, você poderá remover o Distribuidor relevante. No entanto, antes de abandonar o distribuidor, você deve retirar a designação de assinante do Publisher. Para fazer isso, use os seguintes procedimentos armazenados:

  • sp_dropsubscriber: você pode usar o procedimento armazenado do sp_dropsubscriber sistema para remover a designação de assinante de um servidor registrado. O procedimento armazenado remove a entrada do registro para o assinante. O procedimento armazenado é executado no Publisher no banco de dados de publicação.

  • sp_dropdistributor: você pode usar o procedimento armazenado do sp_dropdistributor sistema para remover o distribuidor. O procedimento armazenado é executado no distribuidor. Para remover a designação de assinante do Publisher, execute o seguinte script no Publisher:

    USE master
    GO
    EXEC sp_dropsubscriber @subscriber = N'<Subscriber server name>', @reserved = N'drop_subscriptions'
    

    Para remover o distribuidor, execute o seguinte script no distribuidor:

    USE master
    GO
    EXEC sp_dropdistributor @no_checks = 1
    

Usar procedimentos armazenados

Você também pode usar os seguintes procedimentos armazenados ao remover a replicação:

  • sp_removedbreplication: você pode usar o procedimento armazenado do sp_removedbreplication sistema para remover todos os objetos de replicação de um banco de dados sem atualizar os dados no distribuidor. Você deve executar o procedimento armazenado no Publisher no banco de dados de publicação ou no Assinante no banco de dados de assinatura. A seguir está a sintaxe deste procedimento armazenado:

    sp_removedbreplication '<Database name>'
    
  • sp_droparticle: você pode usar o procedimento armazenado do sp_droparticle sistema para remover um artigo de uma publicação instantâneo ou da publicação transacional. Não é possível remover um artigo se uma ou mais assinaturas do artigo publicado ainda existirem. Você deve executar o procedimento armazenado no Publisher no banco de dados de publicação. A seguir está a sintaxe deste procedimento armazenado:

    sp_droparticle @publication = N'<Publication name>', @article = N'<Article name>', @force_invalidate_snapshot = 1
    

Referências

Para obter mais informações, confira os seguintes tópicos em SQL Server Livros Online: