Jak Wyłącz publikacji i dystrybucji (Programowanie replikacji Transact-SQL)

Publikowanie i rozpowszechnianie można wyłączyć programowo za pomocą procedur przechowywanych replikacja.

Aby wyłączyć publikowanie i dystrybucji

  1. Zatrzymaj wszystko replikacja-związanych z zadaniami.Listę nazw zadań, zobacz "Agent zabezpieczeń pod SQL Server Agent" sekcja Model zabezpieczeń Agent replikacji.

  2. Na każdy abonent na baza danych subskrypcja, wykonanie sp_removedbreplication usunąć obiekty replikacja z bazy danych.Ta procedura składowana nie spowoduje usunięcia zadania replikacja na dystrybutora.

  3. Wydawca na baza danych publikacja, wykonanie sp_removedbreplication usunąć obiekty replikacja z bazy danych.

  4. Jeśli Wydawca używa dystrybutor zdalny, wykonanie sp_dropdistributor.

  5. wykonać na Dystrybutor, sp_dropdistpublisher.Ta procedura składowana powinna uruchamiane raz dla każdego Wydawca zarejestrowany u dystrybutora.

  6. wykonać na Dystrybutor, sp_dropdistributiondb usunąć baza danych dystrybucji.Ta procedura składowana powinny być uruchamiane raz dla każdej baza danych dystrybucji na dystrybutora.Powoduje to również usunięcie agenta czytnik kolejki zadania związane z baza danych dystrybucji.

  7. wykonać na Dystrybutor, sp_dropdistributor usunąć oznaczenie dystrybutora z serwera.

    Ostrzeżenie

    Jeśli wszystkie obiekty publikacji i dystrybucji replikacja nie są usuwane przed wykonać sp_dropdistpublisher i sp_dropdistributor, procedury te zwróci błąd.Aby usunąć wszystkie związane z replikacją obiektów po upuszczeniu wydawcy lub dystrybutora @ no_checks parametr musi być zestaw do 1.Jeśli Wydawca lub dystrybutor jest offline lub jest niedostępny, @ ignore_distributor zestaw parametr 1 , dzięki czemu mogą być odrzucone; Jednakże wszelkie publikowania i rozmieszczanie obiektów pozostawionych należy usunąć ręcznie.

Przykład

Ten przykładowy skrypt usuwa obiekty replikacji z baza danych subskrypcja.

-- Remove replication objects from the subscription database on MYSUB.
DECLARE @subscriptionDB AS sysname
SET @subscriptionDB = N'AdventureWorks2008R2Replica'

-- Remove replication objects from a subscription database (if necessary).
USE master
EXEC sp_removedbreplication @subscriptionDB
GO

Ten przykładowy skrypt wyłącza publikacji i dystrybucji na serwerze, Wydawca i dystrybutora i spadnie baza danych dystrybucji.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Disable publishing and distribution.
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB as sysname;
SET @distributionDB = N'distribution';
SET @publisher = $(DistPubServer);
SET @publicationDB = N'AdventureWorks2008R2';

-- Disable the publication database.
USE [AdventureWorks2008R2]
EXEC sp_removedbreplication @publicationDB;

-- Remove the registration of the local Publisher at the Distributor.
USE master
EXEC sp_dropdistpublisher @publisher;

-- Delete the distribution database.
EXEC sp_dropdistributiondb @distributionDB;

-- Remove the local server as a Distributor.
EXEC sp_dropdistributor;
GO