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 :
- Supprimez tous les abonnements configurés pour la réplication.
- Supprimez toutes les publications configurées pour la réplication.
- 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 lasp_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 lasp_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 lasp_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 lasp_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 :
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>'
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 :
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>'
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 :
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>'
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 lasp_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 lasp_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 lasp_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 lasp_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 lasp_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 lasp_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 lasp_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 :
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour