Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment supprimer manuellement la réplication dans SQL Server.
Version du produit d’origine : SQL Server
Numéro de 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és 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.
Note
Pour plus d’informations sur les procédures stockées système mentionnées dans cet article, consultez la documentation en ligne de SQL Server.
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.
Note
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’une 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_dropsubscriptionprocé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_droppullsubscriptionprocédure stockée système pour supprimer un abonnement à 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 pull.sp_dropmergesubscription: vous pouvez utiliser lasp_dropmergesubscriptionprocé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_dropmergepullsubscriptionprocé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 pull.
Supprimer les abonnements aux instantanés
Pour supprimer un abonnement Push à tous les articles d’une publication d’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 d’instantané par extraction à tous les articles d’une publication d’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 Push à 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 Push, 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_droppublicationprocédure stockée système pour supprimer une publication et les articles associés à la composition. 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_dropmergepublicationprocédure stockée système pour supprimer une publication de fusion et l’Agent d’instantané associé à 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_replicationdboptionprocé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 d’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
Une fois tous les abonnements et les publications terminés, 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é de Publisher. Pour ce faire, utilisez les procédures stockées suivantes :
sp_dropsubscriber: vous pouvez utiliser lasp_dropsubscriberprocé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_dropdistributorprocé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 de l’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_removedbreplicationprocé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 Publisher 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_droparticleprocédure stockée système pour supprimer un article d’une publication d’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 la documentation en ligne de SQL Server :