Manuelles Entfernen der Replikation in SQL Server
In diesem Artikel wird erläutert, wie Sie die Replikation in SQL Server manuell entfernen.
Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 324401
Zusammenfassung
In diesem Artikel wird beschrieben, wie Sie eine Replikation von einem Computer entfernen, auf dem Microsoft SQL Server ausgeführt wird. Um eine Replikation zu entfernen, müssen Sie die Abonnements, die Veröffentlichungen und den Verteiler löschen, der für die Replikation konfiguriert ist. Sie können die Replikation entfernen, indem Sie das Transact-SQL-Skript ausführen, das von SQL Server Enterprise Manager oder SQL Server Management Studio generiert wird. Wenn Sie jedoch das Transact-SQL-Skript nicht generieren können, um die Replikation zu entfernen, können Sie die Replikation manuell entfernen, indem Sie gespeicherte Systemprozeduren und andere Transact-SQL-Anweisungen verwenden. Dieser Artikel enthält Informationen zu gespeicherten Systemprozeduren, die in diesem Prozess verwendet werden können.
Hinweis
Weitere Informationen zu den gespeicherten Systemprozeduren, die in diesem Artikel erwähnt werden, finden Sie in der SQL Server-Onlinedokumentation.
Manuelles Entfernen einer Replikation
Sie können eine Replikation manuell entfernen, indem Sie gespeicherte Systemprozeduren und andere Transact-SQL-Anweisungen verwenden. Führen Sie die folgenden Schritte aus, um eine Replikation vollständig zu entfernen:
- Löschen Sie alle Abonnements, die für die Replikation konfiguriert sind.
- Löschen Sie alle Veröffentlichungen, die für die Replikation konfiguriert sind.
- Löschen Sie den Verteiler, der für die Replikation konfiguriert ist.
Hinweis
Die gespeicherten Systemprozeduren für jeden Replikationstyp werden weiter unten in diesem Artikel aufgeführt. Verwenden Sie je nach Replikationstyp, den Sie entfernen möchten, die entsprechenden gespeicherten Prozeduren.
Löschen der Abonnements
Um die Abonnements aus einer instance SQL Server zu löschen, können Sie die folgenden gespeicherten Prozeduren und die entsprechenden Parameter verwenden:
sp_dropsubscription
: Sie können die gespeichertesp_dropsubscription
Systemprozedur verwenden, um Abonnements für einen bestimmten Artikel, eine bestimmte Veröffentlichung oder eine Gruppe von Abonnements auf Publisher zu löschen. Sie müssen die gespeicherte Prozedur auf dem Verlegerserver in der Veröffentlichungsdatenbank ausführen.sp_droppullsubscription
: Sie können die gespeichertesp_droppullsubscription
Systemprozedur verwenden, um ein Abonnement in der aktuellen Datenbank des Abonnenten zu löschen. Sie müssen die gespeicherte Prozedur auf dem Abonnenten für die Pullabonnementdatenbank ausführen.sp_dropmergesubscription
: Sie können diesp_dropmergesubscription
gespeicherte Systemprozedur verwenden, um ein Abonnement einer Mergeveröffentlichung und der Merge-Agent zu löschen, die der Mergeveröffentlichung zugeordnet ist. Sie müssen die gespeicherte Prozedur auf dem Verlegerserver in der Veröffentlichungsdatenbank ausführen.sp_dropmergepullsubscription
: Sie können die gespeichertesp_dropmergepullsubscription
Systemprozedur verwenden, um ein Merge-Pullabonnement zu löschen. Sie müssen die gespeicherte Prozedur auf dem Abonnenten für die Pullabonnementdatenbank ausführen.
Löschen Momentaufnahme Abonnements
Um ein Pushabonnement für alle Artikel für eine Momentaufnahme Veröffentlichung zu löschen, führen Sie das folgende Skript auf Publisher aus:
USE < **Publication database name** >
GO
EXEC sp_dropsubscription @publication = N'<Publication name>', @article = N'all', @subscriber = N'all', @destination_db = N'all'
Führen Sie die folgenden Schritte aus, um ein Pull-Momentaufnahme-Abonnement für alle Artikel für eine Momentaufnahme Veröffentlichung zu löschen:
Führen Sie das folgende SQL-Skript auf dem Abonnenten aus:
USE < **Subscription database name** > GO EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publication database name>', @publication = N'<Publication name>'
Führen Sie das folgende Skript auf Publisher aus:
USE < **Publication database name** > GO EXEC sp_dropsubscription @publication=N'<Publication name>', @subscriber = N'<Subscriber server name>', @article = N'all', @destination_db = N'all'
Löschen eines Transaktionsabonnements
Um ein Pushabonnement für alle Artikel für eine Transaktionsveröffentlichung zu löschen, führen Sie das folgende Skript auf Publisher aus:
USE < **Publication database name** >
GO
EXEC sp_dropsubscription @publication = N'<Publication name>', @article = N'all', @subscriber = N'all', @destination_db = N'all'
Führen Sie die folgenden Schritte aus, um ein Pullabonnement für alle Artikel für eine Transaktionsveröffentlichung zu löschen:
Führen Sie das folgende Skript auf dem Abonnenten aus:
USE < **Subscription database name** > GO EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>', @publication = N'<Publication name>'
Führen Sie das folgende Skript auf Publisher aus:
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>'
Löschen eines Mergeabonnements
Um ein Pushabonnement zu löschen, führen Sie das folgende Skript auf Publisher aus:
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'
Führen Sie die folgenden Schritte aus, um ein Pullabonnement zu löschen:
Führen Sie das folgende Skript auf dem Abonnenten aus:
USE < **Subscription database name** > GO EXEC sp_dropmergepullsubscription @publication = N'<Publication name>', @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>'
Führen Sie das folgende Skript auf Publisher aus:
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>'
Löschen der Veröffentlichungen
Nachdem Sie alle Abonnements entfernt haben, die eine Veröffentlichung abonniert haben, können Sie die Veröffentlichung entfernen. Nachdem Sie die Veröffentlichungen in der Veröffentlichungsdatenbank entfernt haben, müssen Sie die Replikationsdatenbankoption für die Veröffentlichungsdatenbank auf false festlegen. Um eine Veröffentlichung zu entfernen, können Sie die folgenden gespeicherten Systemprozeduren verwenden:
sp_droppublication
: Sie können die gespeichertesp_droppublication
Systemprozedur verwenden, um eine Veröffentlichung und die Artikel zu löschen, die der Veröffentlichung zugeordnet sind. Sie müssen die gespeicherte Prozedur bei Publisher für die Veröffentlichungsdatenbank ausführen.sp_dropmergepublication
: Sie können die gespeichertesp_dropmergepublication
Systemprozedur verwenden, um eine Mergeveröffentlichung und die Momentaufnahmen-Agent zu löschen, die der Mergeveröffentlichung zugeordnet sind. Die der Veröffentlichung zugeordneten Artikel werden ebenfalls gelöscht. Sie müssen die gespeicherte Prozedur bei Publisher für die Veröffentlichungsdatenbank ausführen.sp_replicationdboption
: Sie können die gespeichertesp_replicationdboption
Systemprozedur verwenden, um eine Replikationsdatenbankoption für die aktuelle Datenbank festzulegen. Sie müssen die gespeicherte Prozedur auf dem Verlegerserver ausführen.
Führen Sie das folgende Skript auf Publisher aus, um eine Momentaufnahme Veröffentlichung zu löschen:
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'
Führen Sie das folgende Skript auf Publisher aus, um eine Transaktionsveröffentlichung zu löschen:
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'
Führen Sie das folgende Skript auf Publisher aus, um eine Mergeveröffentlichung zu löschen:
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'
Verteiler löschen
Nachdem Sie alle Abonnements und Veröffentlichungen gelöscht haben, können Sie den entsprechenden Verteiler löschen. Bevor Sie jedoch den Verteiler löschen, müssen Sie die Abonnentenbezeichnung aus Publisher löschen. Verwenden Sie dazu die folgenden gespeicherten Prozeduren:
sp_dropsubscriber
: Sie können die gespeichertesp_dropsubscriber
Systemprozedur verwenden, um die Abonnentenbezeichnung von einem registrierten Server zu löschen. Die gespeicherte Prozedur entfernt den Registrierungseintrag für den Abonnenten. Die gespeicherte Prozedur wird auf Verleger für die Veröffentlichungsdatenbank ausgeführt.sp_dropdistributor
: Sie können die gespeichertesp_dropdistributor
Systemprozedur verwenden, um den Verteiler zu entfernen. Die gespeicherte Prozedur wird auf dem Verteiler ausgeführt. Um die Abonnentenbezeichnung aus Publisher zu löschen, führen Sie das folgende Skript unter Publisher aus:USE master GO EXEC sp_dropsubscriber @subscriber = N'<Subscriber server name>', @reserved = N'drop_subscriptions'
Um den Verteiler zu entfernen, führen Sie das folgende Skript auf dem Verteiler aus:
USE master GO EXEC sp_dropdistributor @no_checks = 1
Verwenden von gespeicherten Prozeduren
Sie können auch die folgenden gespeicherten Prozeduren verwenden, wenn Sie die Replikation entfernen:
sp_removedbreplication
: Sie können die gespeichertesp_removedbreplication
Systemprozedur verwenden, um alle Replikationsobjekte aus einer Datenbank zu entfernen, ohne die Daten auf dem Verteiler zu aktualisieren. Sie müssen die gespeicherte Prozedur auf Publisher für die Veröffentlichungsdatenbank oder auf dem Abonnenten für die Abonnementdatenbank ausführen. Es folgt die Syntax für diese gespeicherte Prozedur:sp_removedbreplication '<Database name>'
sp_droparticle
: Sie können die gespeichertesp_droparticle
Systemprozedur verwenden, um einen Artikel aus einer Momentaufnahme Veröffentlichung oder aus der Transaktionsveröffentlichung zu löschen. Sie können einen Artikel nicht entfernen, wenn ein oder mehrere Abonnements für den veröffentlichten Artikel noch vorhanden sind. Sie müssen die gespeicherte Prozedur bei Publisher für die Veröffentlichungsdatenbank ausführen. Es folgt die Syntax für diese gespeicherte Prozedur:sp_droparticle @publication = N'<Publication name>', @article = N'<Article name>', @force_invalidate_snapshot = 1
References
Weitere Informationen finden Sie in den folgenden Themen in der SQL Server-Onlinedokumentation:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Feedback senden und anzeigen für