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:

  1. Löschen Sie alle Abonnements, die für die Replikation konfiguriert sind.
  2. Löschen Sie alle Veröffentlichungen, die für die Replikation konfiguriert sind.
  3. 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 gespeicherte sp_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 gespeicherte sp_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 die sp_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 gespeicherte sp_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:

  1. 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>'
    
  2. 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:

  1. 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>'
    
  2. 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:

  1. 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>'
    
  2. 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 gespeicherte sp_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 gespeicherte sp_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 gespeicherte sp_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 gespeicherte sp_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 gespeicherte sp_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 gespeicherte sp_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 gespeicherte sp_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: