Lezen in het Engels

Delen via


Replicatie handmatig verwijderen in SQL Server

In dit artikel wordt uitgelegd hoe u replicatie handmatig verwijdert in SQL Server.

Oorspronkelijke productversie: SQL Server
Oorspronkelijk KB-nummer: 324401

Samenvatting

In dit artikel wordt beschreven hoe u een replicatie verwijdert van een computer waarop Microsoft SQL Server wordt uitgevoerd. Als u een replicatie wilt verwijderen, moet u de abonnementen, de publicaties en de distributeur verwijderen die is geconfigureerd voor de replicatie. U kunt de replicatie verwijderen door het Transact-SQL-script uit te voeren dat wordt gegenereerd door SQL Server Enterprise Manager of SQL Server Management Studio. Als u het Transact-SQL-script echter niet kunt genereren om de replicatie te verwijderen, kunt u de replicatie handmatig verwijderen met behulp van door het systeem opgeslagen procedures en andere Transact-SQL-instructies. Dit artikel bevat informatie over door het systeem opgeslagen procedures die in dit proces kunnen worden gebruikt.

Notitie

Zie SQL Server Books Online voor meer informatie over de door het systeem opgeslagen procedures die in dit artikel worden genoemd.

Handmatig een replicatie verwijderen

U kunt een replicatie handmatig verwijderen met behulp van door het systeem opgeslagen procedures en andere Transact-SQL-instructies. Voer de volgende stappen uit om een replicatie volledig te verwijderen:

  1. Verwijder alle abonnementen die zijn geconfigureerd voor de replicatie.
  2. Verwijder alle publicaties die zijn geconfigureerd voor de replicatie.
  3. Verwijder de distributeur die is geconfigureerd voor de replicatie.

Notitie

De door het systeem opgeslagen procedures voor elk type replicatie worden verderop in dit artikel vermeld. Gebruik de juiste opgeslagen procedures, afhankelijk van het type replicatie dat u wilt verwijderen.

De abonnementen verwijderen

Als u de abonnementen wilt verwijderen uit een exemplaar van SQL Server, kunt u de volgende opgeslagen procedures en de juiste parameters gebruiken:

  • sp_dropsubscription : U kunt de door het sp_dropsubscription systeem opgeslagen procedure gebruiken om abonnementen te verwijderen naar een bepaald artikel, een bepaalde publicatie of een set abonnementen op Publisher. U moet de opgeslagen procedure uitvoeren op de Publisher-server in de publicatiedatabase.

  • sp_droppullsubscription : U kunt de door het sp_droppullsubscription systeem opgeslagen procedure gebruiken om een abonnement te verwijderen in de huidige database van de abonnee. U moet de opgeslagen procedure uitvoeren bij abonnee in de pull-abonnementsdatabase.

  • sp_dropmergesubscription : U kunt de door het sp_dropmergesubscription systeem opgeslagen procedure gebruiken om een abonnement te verwijderen naar een samenvoegpublicatie en naar de samenvoegagent die is gekoppeld aan de samenvoegpublicatie. U moet de opgeslagen procedure uitvoeren op de Publisher-server in de publicatiedatabase.

  • sp_dropmergepullsubscription : U kunt de opgeslagen procedure van het sp_dropmergepullsubscription systeem gebruiken om een pull-abonnement voor samenvoegen te verwijderen. U moet de opgeslagen procedure uitvoeren bij abonnee in de pull-abonnementsdatabase.

Momentopnameabonnementen verwijderen

Als u een push-abonnement wilt verwijderen naar alle artikelen voor een momentopnamepublicatie, voert u het volgende script uit op Publisher:

SQL
USE < **Publication database name** >
GO
EXEC sp_dropsubscription @publication = N'<Publication name>', @article = N'all', @subscriber = N'all', @destination_db = N'all'

Als u een pull-momentopnameabonnement wilt verwijderen uit alle artikelen voor een momentopnamepublicatie, voert u de volgende stappen uit:

  1. Voer het volgende SQL-script uit op de abonnee:

    SQL
    USE < **Subscription database name** >
    GO
    EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publication database name>', @publication = N'<Publication name>'
    
  2. Voer het volgende script uit bij Publisher:

    SQL
    USE < **Publication database name** >
    GO
    EXEC sp_dropsubscription @publication=N'<Publication name>', @subscriber = N'<Subscriber server name>', @article = N'all', @destination_db = N'all'
    

Een transactioneel abonnement verwijderen

Als u een pushabonnement wilt verwijderen naar alle artikelen voor een transactionele publicatie, voert u het volgende script uit op Publisher:

SQL
USE < **Publication database name** >
GO
EXEC sp_dropsubscription @publication = N'<Publication name>', @article = N'all', @subscriber = N'all', @destination_db = N'all'

Als u een pull-abonnement wilt verwijderen uit alle artikelen voor een transactionele publicatie, voert u de volgende stappen uit:

  1. Voer het volgende script uit op de abonnee:

    SQL
    USE < **Subscription database name** >
    GO
    EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>', @publication = N'<Publication name>'
    
  2. Voer het volgende script uit bij Publisher:

    SQL
    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>'
    

Een samenvoegabonnement verwijderen

Als u een push-abonnement wilt verwijderen, voert u het volgende script uit bij Publisher:

SQL
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'

Voer de volgende stappen uit om een pull-abonnement te verwijderen:

  1. Voer het volgende script uit op de abonnee:

    SQL
    USE < **Subscription database name** >
    GO
    EXEC sp_dropmergepullsubscription @publication = N'<Publication name>', @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>'
    
  2. Voer het volgende script uit bij Publisher:

    SQL
    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>'
    

De publicaties verwijderen

Nadat u alle abonnementen hebt verwijderd die zich op een publicatie abonneren, kunt u de publicatie verwijderen. Nadat u de publicaties in de publicatiedatabase hebt verwijderd, moet u de optie voor de replicatiedatabase voor de publicatiedatabase instellen op false. Als u een publicatie wilt verwijderen, kunt u de volgende door het systeem opgeslagen procedures gebruiken:

  • sp_droppublication: U kunt de door het sp_droppublication systeem opgeslagen procedure gebruiken om een publicatie en de artikelen die aan de publicatie zijn gekoppeld, te verwijderen. U moet de opgeslagen procedure uitvoeren bij Publisher in de publicatiedatabase.
  • sp_dropmergepublication: U kunt de door het sp_dropmergepublication systeem opgeslagen procedure gebruiken om een samenvoegpublicatie en de momentopnameagent te verwijderen die is gekoppeld aan de samenvoegpublicatie. De artikelen die aan de publicatie zijn gekoppeld, worden ook verwijderd. U moet de opgeslagen procedure uitvoeren bij Publisher in de publicatiedatabase.
  • sp_replicationdboption: U kunt de door het sp_replicationdboption systeem opgeslagen procedure gebruiken om een optie voor de replicatiedatabase in te stellen voor de huidige database. U moet de opgeslagen procedure uitvoeren op de Publisher-server.

Als u een momentopnamepublicatie wilt verwijderen, voert u het volgende script uit bij Publisher:

SQL
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'

Als u een transactionele publicatie wilt verwijderen, voert u het volgende script uit bij Publisher:

SQL
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'

Als u een samenvoegpublicatie wilt verwijderen, voert u het volgende script uit bij Publisher:

SQL
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'

Zet de distributeur neer

Nadat u alle abonnementen en publicaties hebt wegvallen, kunt u de relevante distributeur verwijderen. Voordat u de distributeur neerwijst, moet u de abonneeaanduiding echter uit Publisher verwijderen. Gebruik hiervoor de volgende opgeslagen procedures:

  • sp_dropsubscriber: U kunt de door het sp_dropsubscriber systeem opgeslagen procedure gebruiken om de toewijzing van abonnees van een geregistreerde server te verwijderen. Met de opgeslagen procedure wordt de registervermelding voor de abonnee verwijderd. De opgeslagen procedure wordt uitgevoerd bij Publisher in de publicatiedatabase.

  • sp_dropdistributor: U kunt de sp_dropdistributor systeem opgeslagen procedure gebruiken om de distributeur te verwijderen. De opgeslagen procedure wordt uitgevoerd bij de distributeur. Voer het volgende script uit bij Publisher om de aanduiding van de abonnee uit te zetten bij Publisher:

    SQL
    USE master
    GO
    EXEC sp_dropsubscriber @subscriber = N'<Subscriber server name>', @reserved = N'drop_subscriptions'
    

    Als u de distributeur wilt verwijderen, voert u het volgende script uit bij de distributeur:

    SQL
    USE master
    GO
    EXEC sp_dropdistributor @no_checks = 1
    

Opgeslagen procedures gebruiken

U kunt ook de volgende opgeslagen procedures gebruiken wanneer u de replicatie verwijdert:

  • sp_removedbreplication: U kunt de opgeslagen procedure van het sp_removedbreplication systeem gebruiken om alle replicatieobjecten uit een database te verwijderen zonder de gegevens bij de distributeur bij te werken. U moet de opgeslagen procedure uitvoeren bij Publisher in de publicatiedatabase of bij abonnee in de abonnementsdatabase. Hier volgt de syntaxis voor deze opgeslagen procedure:

    SQL
    sp_removedbreplication '<Database name>'
    
  • sp_droparticle: U kunt de door het sp_droparticle systeem opgeslagen procedure gebruiken om een artikel te verwijderen uit een momentopnamepublicatie of uit de transactionele publicatie. U kunt een artikel niet verwijderen als een of meer abonnementen op het gepubliceerde artikel nog bestaan. U moet de opgeslagen procedure uitvoeren bij Publisher in de publicatiedatabase. Hier volgt de syntaxis voor deze opgeslagen procedure:

    SQL
    sp_droparticle @publication = N'<Publication name>', @article = N'<Article name>', @force_invalidate_snapshot = 1
    

Verwijzingen

Zie de volgende onderwerpen in SQL Server Books Online voor meer informatie: