Freigeben über


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 Publikationen und den Distributor ablegen, 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 mithilfe von vom System gespeicherten Prozeduren und anderen Transact-SQL-Anweisungen manuell entfernen. Dieser Artikel enthält Informationen zu gespeicherten Systemprozeduren, die in diesem Prozess verwendet werden können.

Notiz

Weitere Informationen zu den in diesem Artikel erwähnten gespeicherten Systemprozeduren finden Sie in SQL Server Books Online.

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. Legen Sie alle Abonnements ab, die für die Replikation konfiguriert sind.
  2. Legen Sie alle Publikationen ab, die für die Replikation konfiguriert sind.
  3. Legen Sie den Verteiler ab, der für die Replikation konfiguriert ist.

Notiz

Die gespeicherten Prozeduren des Systems 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.

Ablegen der Abonnements

Um die Abonnements aus einer Sql Server-Instanz abzulegen, können Sie die folgenden gespeicherten Prozeduren und die entsprechenden Parameter verwenden:

  • sp_dropsubscription : Sie können die sp_dropsubscription vom System gespeicherte Prozedur verwenden, um Abonnements für einen bestimmten Artikel, eine bestimmte Publikation oder einen bestimmten Satz von Abonnements in Publisher abzulegen. Sie müssen die gespeicherte Prozedur auf dem Publisher-Server in der Publikationsdatenbank ausführen.

  • sp_droppullsubscription : Sie können die sp_droppullsubscription gespeicherte Systemprozedur verwenden, um ein Abonnement in der aktuellen Datenbank des Abonnenten abzulegen. Sie müssen die gespeicherte Prozedur beim Abonnenten in der Pullabonnementdatenbank ausführen.

  • sp_dropmergesubscription: Sie können die sp_dropmergesubscription gespeicherte Systemprozedur verwenden, um ein Abonnement für eine Zusammenführungsveröffentlichung und die Merge-Agent, die der Zusammenführungsveröffentlichung zugeordnet ist, abzulegen. Sie müssen die gespeicherte Prozedur auf dem Publisher-Server in der Publikationsdatenbank ausführen.

  • sp_dropmergepullsubscription : Sie können die sp_dropmergepullsubscription gespeicherte Systemprozedur verwenden, um ein Seriendruck-Pullabonnement abzulegen. Sie müssen die gespeicherte Prozedur beim Abonnenten in der Pullabonnementdatenbank ausführen.

Snapshotabonnements ablegen

Um ein Pushabonnement für alle Artikel für eine Snapshot-Publikation abzulegen, führen Sie das folgende Skript bei 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-Snapshot-Abonnement für alle Artikel für eine Snapshot-Publikation abzulegen:

  1. Führen Sie das folgende SQL-Skript beim 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 bei 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'
    

Ablegen eines Transaktionsabonnements

Um ein Pushabonnement für alle Artikel für eine transaktionsbasierte Publikation abzulegen, führen Sie das folgende Skript bei 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 transaktionsbasierte Publikation abzulegen:

  1. Führen Sie das folgende Skript beim 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 bei 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>'
    

Ablegen eines Seriendruckabonnements

Führen Sie zum Ablegen eines Pushabonnements das folgende Skript bei 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 abzulegen:

  1. Führen Sie das folgende Skript beim 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 bei 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>'
    

Ablegen der Publikationen

Nachdem Sie alle Abonnements entfernt haben, die eine Publikation abonnieren, können Sie die Publikation entfernen. Nachdem Sie die Publikationen in der Publikationsdatenbank entfernt haben, müssen Sie die Replikationsdatenbankoption für die Publikationsdatenbank auf "false" festlegen. Zum Entfernen einer Publikation können Sie die folgenden gespeicherten Systemprozeduren verwenden:

  • sp_droppublication: Sie können die sp_droppublication gespeicherte Systemprozedur verwenden, um eine Publikation und die Artikel zu löschen, die der Publikation zugeordnet sind. Sie müssen die gespeicherte Prozedur in Publisher in der Publikationsdatenbank ausführen.
  • sp_dropmergepublication: Sie können die sp_dropmergepublication gespeicherte Systemprozedur verwenden, um eine Zusammenführungsveröffentlichung und die Momentaufnahmen-Agent, die der Zusammenführungsveröffentlichung zugeordnet ist, abzulegen. Die Artikel, die der Publikation zugeordnet sind, werden ebenfalls gelöscht. Sie müssen die gespeicherte Prozedur in Publisher in der Publikationsdatenbank ausführen.
  • sp_replicationdboption: Sie können die sp_replicationdboption gespeicherte Systemprozedur verwenden, um eine Replikationsdatenbankoption für die aktuelle Datenbank festzulegen. Sie müssen die gespeicherte Prozedur auf dem Publisher-Server ausführen.

Führen Sie zum Ablegen einer Momentaufnahmeveröffentlichung das folgende Skript in Publisher aus:

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 zum Ablegen einer Transaktionsveröffentlichung das folgende Skript bei Publisher aus:

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 zum Ablegen einer Seriendruckveröffentlichung das folgende Skript bei Publisher aus:

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 ablegen

Nachdem Sie alle Abonnements und die Publikationen abzulegen haben, können Sie den entsprechenden Distributor ablegen. Bevor Sie den Verteiler ablegen, müssen Sie jedoch die Abonnentenbezeichnung von Publisher ablegen. Verwenden Sie dazu die folgenden gespeicherten Prozeduren:

  • sp_dropsubscriber: Sie können die sp_dropsubscriber gespeicherte Systemprozedur verwenden, um die Abonnentenbezeichnung von einem registrierten Server abzulegen. Die gespeicherte Prozedur entfernt den Registrierungseintrag für den Abonnenten. Die gespeicherte Prozedur wird in Publisher in der Publikationsdatenbank ausgeführt.

  • sp_dropdistributor: Sie können die sp_dropdistributor gespeicherte Systemprozedur verwenden, um den Verteiler zu entfernen. Die gespeicherte Prozedur wird an dem Verteiler ausgeführt. Um die Abonnentenbezeichnung von Publisher abzulegen, führen Sie das folgende Skript bei 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 am Distributor 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 sp_removedbreplication gespeicherte Systemprozedur verwenden, um alle Replikationsobjekte aus einer Datenbank zu entfernen, ohne die Daten am Verteiler zu aktualisieren. Sie müssen die gespeicherte Prozedur bei Publisher in der Publikationsdatenbank oder beim Abonnenten in der Abonnementdatenbank ausführen. Es folgt die Syntax für diese gespeicherte Prozedur:

    sp_removedbreplication '<Database name>'
    
  • sp_droparticle: Sie können die sp_droparticle vom System gespeicherte Prozedur verwenden, um einen Artikel aus einer Snapshot-Publikation oder aus der Transaktionsveröffentlichung abzulegen. Sie können einen Artikel nicht entfernen, wenn noch ein oder mehrere Abonnements für den veröffentlichten Artikel vorhanden sind. Sie müssen die gespeicherte Prozedur in Publisher in der Publikationsdatenbank 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: