Supprimer manuellement la réplication dans SQL Server

Cet article explique comment supprimer manuellement la réplication dans SQL Server.

Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 324401

Résumé

Cet article explique comment supprimer une réplication d’un ordinateur exécutant Microsoft SQL Server. Pour supprimer une réplication, vous devez supprimer les abonnements, les publications et le serveur de distribution configuré pour la réplication. Vous pouvez supprimer la réplication en exécutant le script Transact-SQL généré par SQL Server Entreprise Manager ou SQL Server Management Studio. Toutefois, si vous ne pouvez pas générer le script Transact-SQL pour supprimer la réplication, vous pouvez supprimer manuellement la réplication à l’aide de procédures stockées système et d’autres instructions Transact-SQL. Cet article contient des informations sur les procédures stockées système qui peuvent être utilisées dans ce processus.

Remarque

Pour plus d’informations sur les procédures stockées système mentionnées dans cet article, consultez SQL Server documentation en ligne.

Supprimer manuellement une réplication

Vous pouvez supprimer manuellement une réplication à l’aide de procédures stockées système et d’autres instructions Transact-SQL. Pour supprimer complètement une réplication, procédez comme suit :

  1. Supprimez tous les abonnements configurés pour la réplication.
  2. Supprimez toutes les publications configurées pour la réplication.
  3. Supprimez le serveur de distribution configuré pour la réplication.

Remarque

Les procédures stockées système pour chaque type de réplication sont répertoriées plus loin dans cet article. Utilisez les procédures stockées appropriées, en fonction du type de réplication que vous souhaitez supprimer.

Supprimer les abonnements

Pour supprimer les abonnements d’un instance de SQL Server, vous pouvez utiliser les procédures stockées suivantes et les paramètres appropriés :

  • sp_dropsubscription : vous pouvez utiliser la sp_dropsubscription procédure stockée système pour supprimer des abonnements à un article, une publication ou un ensemble d’abonnements particulier sur Publisher. Vous devez exécuter la procédure stockée sur le serveur de publication sur la base de données de publication.

  • sp_droppullsubscription : vous pouvez utiliser la sp_droppullsubscription procédure stockée système pour supprimer un abonnement dans la base de données actuelle de l’Abonné. Vous devez exécuter la procédure stockée sur l’Abonné sur la base de données d’abonnement par extraction.

  • sp_dropmergesubscription: vous pouvez utiliser la sp_dropmergesubscription procédure stockée système pour supprimer un abonnement à une publication de fusion et à la Agent de fusion associée à la publication de fusion. Vous devez exécuter la procédure stockée sur le serveur de publication sur la base de données de publication.

  • sp_dropmergepullsubscription : vous pouvez utiliser la sp_dropmergepullsubscription procédure stockée système pour supprimer un abonnement par extraction de fusion. Vous devez exécuter la procédure stockée sur l’Abonné sur la base de données d’abonnement par extraction.

Supprimer les abonnements instantané

Pour supprimer un abonnement par émission de données à tous les articles d’une publication instantané, exécutez le script suivant sur Publisher :

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

Pour supprimer un abonnement par extraction de instantané à tous les articles d’une publication instantané, procédez comme suit :

  1. Exécutez le script SQL suivant sur l’Abonné :

    USE < **Subscription database name** >
    GO
    EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publication database name>', @publication = N'<Publication name>'
    
  2. Exécutez le script suivant sur 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'
    

Supprimer un abonnement transactionnel

Pour supprimer un abonnement par émission de données à tous les articles d’une publication transactionnelle, exécutez le script suivant sur Publisher :

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

Pour supprimer un abonnement par extraction à tous les articles d’une publication transactionnelle, procédez comme suit :

  1. Exécutez le script suivant sur l’Abonné :

    USE < **Subscription database name** >
    GO
    EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>', @publication = N'<Publication name>'
    
  2. Exécutez le script suivant sur 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>'
    

Supprimer un abonnement de fusion

Pour supprimer un abonnement par émission de données, exécutez le script suivant sur 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'

Pour supprimer un abonnement par extraction, procédez comme suit :

  1. Exécutez le script suivant sur l’Abonné :

    USE < **Subscription database name** >
    GO
    EXEC sp_dropmergepullsubscription @publication = N'<Publication name>', @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>'
    
  2. Exécutez le script suivant sur 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>'
    

Supprimer les publications

Après avoir supprimé tous les abonnements qui s’abonnent à une publication, vous pouvez supprimer la publication. Après avoir supprimé les publications de la base de données de publication, vous devez définir l’option de base de données de réplication pour la base de données de publication sur false. Pour supprimer une publication, vous pouvez utiliser les procédures stockées système suivantes :

  • sp_droppublication: vous pouvez utiliser la sp_droppublication procédure stockée système pour supprimer une publication et les articles associés à la publication. Vous devez exécuter la procédure stockée sur Publisher sur la base de données de publication.
  • sp_dropmergepublication: vous pouvez utiliser la sp_dropmergepublication procédure stockée système pour supprimer une publication de fusion et la Agent d'instantané associée à la publication de fusion. Les articles associés à la publication sont également supprimés. Vous devez exécuter la procédure stockée sur Publisher sur la base de données de publication.
  • sp_replicationdboption: vous pouvez utiliser la sp_replicationdboption procédure stockée système pour définir une option de base de données de réplication pour la base de données active. Vous devez exécuter la procédure stockée sur le serveur de publication.

Pour supprimer une publication instantané, exécutez le script suivant sur 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'

Pour supprimer une publication transactionnelle, exécutez le script suivant sur 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'

Pour supprimer une publication de fusion, exécutez le script suivant sur 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'

Supprimer le serveur de distribution

Après avoir supprimer tous les abonnements et les publications, vous pouvez supprimer le serveur de distribution approprié. Toutefois, avant de supprimer le serveur de distribution, vous devez supprimer la désignation de l’abonné dans Publisher. Pour ce faire, utilisez les procédures stockées suivantes :

  • sp_dropsubscriber: vous pouvez utiliser la sp_dropsubscriber procédure stockée système pour supprimer la désignation de l’abonné d’un serveur inscrit. La procédure stockée supprime l’entrée de Registre pour l’abonné. La procédure stockée est exécutée sur Publisher sur la base de données de publication.

  • sp_dropdistributor: vous pouvez utiliser la sp_dropdistributor procédure stockée système pour supprimer le serveur de distribution. La procédure stockée est exécutée sur le serveur de distribution. Pour supprimer la désignation d’abonné de Publisher, exécutez le script suivant sur Publisher :

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

    Pour supprimer le serveur de distribution, exécutez le script suivant sur le serveur de distribution :

    USE master
    GO
    EXEC sp_dropdistributor @no_checks = 1
    

Utiliser des procédures stockées

Vous pouvez également utiliser les procédures stockées suivantes lorsque vous supprimez la réplication :

  • sp_removedbreplication: vous pouvez utiliser la sp_removedbreplication procédure stockée système pour supprimer tous les objets de réplication d’une base de données sans mettre à jour les données sur le serveur de distribution. Vous devez exécuter la procédure stockée sur le serveur de publication sur la base de données de publication ou sur l’Abonné sur la base de données d’abonnement. Voici la syntaxe de cette procédure stockée :

    sp_removedbreplication '<Database name>'
    
  • sp_droparticle: vous pouvez utiliser la sp_droparticle procédure stockée système pour supprimer un article d’une publication instantané ou de la publication transactionnelle. Vous ne pouvez pas supprimer un article si un ou plusieurs abonnements à l’article publié existent toujours. Vous devez exécuter la procédure stockée sur Publisher sur la base de données de publication. Voici la syntaxe de cette procédure stockée :

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

References

Pour plus d’informations, consultez les rubriques suivantes dans SQL Server documentation en ligne :