Jak Tworzenie aktualizowalna subskrypcji transakcyjnych publikacji (Programowanie replikacji Transact-SQL)
Ostrzeżenie
Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.
replikacja transakcyjnej umożliwia zmiany wprowadzone na subskrybenta propagowane do Wydawca, natychmiastowe lub aktualizowanie subskrypcje w kolejce.Można utworzyć uaktualnienia subskrypcja programowo przy użyciu replikacja procedur przechowywanych.
Aby utworzyć bezpośrednie ściągania aktualizowaniasubskrypcja
Wydawca, sprawdź, czy publikacja obsługuje natychmiastowego subskrypcje aktualizacji przez wykonywanie sp_helppublication.
Jeśli wartość allow_sync_tran w zestaw wyników jest 1, publikacja obsługuje natychmiastowego subskrypcje aktualizacji.
Jeśli wartość allow_sync_tran w zestaw wyników jest 0, należy ponownie utworzyć publikacja z bezpośrednim subskrypcje aktualizacji włączone.Aby uzyskać więcej informacji, zobacz Jak Włączanie aktualizacji subskrypcji dla transakcyjnych publikacje (Programowanie replikacji Transact-SQL).
Wydawca, sprawdź, czy publikacja obsługuje ściągać subskrypcji przez wykonywanie sp_helppublication.
Jeśli wartość allow_pull w zestaw wyników jest 1, publikacja obsługuje subskrypcji ściąganej.
Jeśli wartość allow_pull jest 0, wykonać sp_changepublication, określanie allow_pull dla @ Właściwość i true dla wartość @.
Subskrybent, wykonać sp_addpullsubscription.Określ programu publisher @ i publikacja @, i jeden z następujących wartości @ update_mode:
synctran - enables the subscription for immediate updating.
Praca awaryjna -włącza subskrypcja do natychmiastowej aktualizacji w kolejce aktualizowania jako opcja pracy awaryjnej.
Ostrzeżenie
Praca awaryjna wymaga publikacja również włączenia kolejce subskrypcji aktualizacji.
Subskrybent, wykonać sp_addpullsubscription_agent.Ustaw następujące opcje:
Programu publisher @, @ publisher_db, i publikacja @ parametry.
Microsoft Poświadczenia systemu Windows, na jakich Agent dystrybucji subskrybent działa dla @ job_login i @ job_password.
Ostrzeżenie
Połączenia realizowane przy użyciu zintegrowanego uwierzytelniania systemu Windows są zawsze wykonywane przy użyciu poświadczenia systemu Windows określonego przez @ job_login i @ job_password.Agent dystrybucji powoduje zawsze połączenia lokalnego subskrybenta przy użyciu zintegrowanego uwierzytelniania systemu Windows.Domyślnie agent łączy się z dystrybutorem przy użyciu zintegrowanego uwierzytelniania systemu Windows.
(Optional) A value of 0 for @distributor_security_mode and the Microsoft SQL Server login information for @distributor_login and @distributor_password, if you need to use SQL Server Authentication when connecting to the Distributor.
Harmonogram dla zadanie agenta dystrybucji dla tej subskrypcja.Aby uzyskać więcej informacji, zobacz Jak Określ harmonogramy synchronizacji (Programowanie replikacji Transact-SQL).
Subskrybent na baza danych subskrypcja, wykonać sp_link_publication.Określ programu publisher @, publikacja @, nazwa baza danych publikacja dla @ publisher_db, i jeden z następujących wartości @ security_mode:
0 -Użyj SQL Server uwierzytelniania podczas aktualizacji Wydawca.Opcja ta wymaga określenia prawidłowego logowania Wydawca dla @ login i hasło @.
1 -Za pomocą kontekstu zabezpieczeń użytkownika, wprowadzanie zmian przez subskrybenta, łącząc się z Wydawca.Zobacz sp_link_publication dla ograniczenia związane z tego trybu zabezpieczeń.
2 -Użyj logowania serwer połączony istniejących, zdefiniowane przez użytkownika utworzone za pomocą sp_addlinkedserver.
W programie publisher, należy wykonać sp_addsubscription Określanie publikacja @, @ subskrybent, @ destination_db, wartość ściągać dla @ subscription_typei tej samej wartości określonej w kroku 3 dla @ update_mode.
Rejestruje to subskrypcja wciągana przez wydawcę.
Aby utworzyć bezpośrednie wypychania aktualizowaniasubskrypcja
Wydawca, sprawdź, czy publikacja obsługuje natychmiastowego subskrypcje aktualizacji przez wykonywanie sp_helppublication.
Jeśli wartość allow_sync_tran w zestaw wyników jest 1, publikacja obsługuje natychmiastowego subskrypcje aktualizacji.
Jeśli wartość allow_sync_tran w zestaw wyników jest 0, należy ponownie utworzyć publikacja z bezpośrednim subskrypcje aktualizacji włączone.Aby uzyskać więcej informacji, zobacz Jak Włączanie aktualizacji subskrypcji dla transakcyjnych publikacje (Programowanie replikacji Transact-SQL).
Wydawca, sprawdź, czy publikacja obsługuje wypychanie subskrypcji przez wykonywanie sp_helppublication.
Jeśli wartość allow_push w zestaw wyników jest 1, subskrypcji wypychanych obsługuje publikacja.
Jeśli wartość allow_push jest 0, wykonać sp_changepublication, określanie allow_push dla @ Właściwość i true dla wartość @.
Wydawca, należy wykonać sp_addsubscription.Określ publikacja @, @ subskrybent, @ destination_db, i jeden z następujących wartości @ update_mode:
synctran - enables support for immediate updating.
Praca awaryjna -włącza obsługę do natychmiastowej aktualizacji z aktualizacją kolejce jako opcja pracy awaryjnej.
Ostrzeżenie
Praca awaryjna wymaga publikacja również włączenia kolejce subskrypcji aktualizacji.
Wydawca, należy wykonać sp_addpushsubscription_agent.Określić następujące parametry:
Subskrybent @, @ subscriber_db, i publikacja @.
Poświadczenia systemu Windows, na jakich Agent dystrybucji na dystrybutora działa dla @ job_login i @ job_password.
Ostrzeżenie
Połączenia realizowane przy użyciu zintegrowanego uwierzytelniania systemu Windows są zawsze wykonywane przy użyciu poświadczenia systemu Windows określonego przez @ job_login i @ job_password.Agent dystrybucji powoduje zawsze połączenia lokalnego dystrybutora przy użyciu zintegrowanego uwierzytelniania systemu Windows.Domyślnie agent połączy subskrybenta przy użyciu zintegrowanego uwierzytelniania systemu Windows.
(Opcjonalnie) Wartość 0 dla @ subscriber_security_mode i SQL Server informacji logowania dla @ subscriber_login i @ subscriber_password, jeśli konieczne jest użycie SQL Server uwierzytelniania podczas łączenia się z subskrybenta.
Harmonogram dla zadanie agenta dystrybucji dla tej subskrypcja.Aby uzyskać więcej informacji, zobacz Jak Określ harmonogramy synchronizacji (Programowanie replikacji Transact-SQL).
Subskrybent na baza danych subskrypcja, wykonać sp_link_publication.Określ programu publisher @, publikacja @, nazwa baza danych publikacja dla @ publisher_db, i jeden z następujących wartości @ security_mode:
0 -Użyj SQL Server uwierzytelniania podczas aktualizacji Wydawca.Opcja ta wymaga określenia prawidłowego logowania Wydawca dla @ login i hasło @.
1 -Za pomocą kontekstu zabezpieczeń użytkownika, wprowadzanie zmian przez subskrybenta, łącząc się z Wydawca.Zobacz sp_link_publication dla ograniczenia związane z tego trybu zabezpieczeń.
2 -Użyj logowania serwer połączony istniejących, zdefiniowane przez użytkownika utworzone za pomocą sp_addlinkedserver.
Aby utworzyć kolejce aktualizacji replikacji ściąganejsubskrypcja
Wydawca, sprawdź, czy publikacja obsługuje kolejce subskrypcje aktualizacji przez wykonywanie sp_helppublication.
Jeśli wartość allow_queued_tran w zestaw wyników jest 1, publikacja obsługuje natychmiastowego subskrypcje aktualizacji.
Jeśli wartość allow_queued_tran w zestaw wyników jest 0, należy ponownie utworzyć publikacja w kolejce subskrypcje aktualizacji włączone.Aby uzyskać więcej informacji, zobacz Jak Włączanie aktualizacji subskrypcji dla transakcyjnych publikacje (Programowanie replikacji Transact-SQL).
Wydawca, sprawdź, czy publikacja obsługuje ściągać subskrypcji przez wykonywanie sp_helppublication.
Jeśli wartość allow_pull w zestaw wyników jest 1, publikacja obsługuje subskrypcji ściąganej.
Jeśli wartość allow_pull jest 0, wykonać sp_changepublication, określanie allow_pull dla @ Właściwość i true dla wartość @.
Subskrybent, wykonać sp_addpullsubscription.Określ programu publisher @ i publikacja @, i jeden z następujących wartości @ update_mode:
w kolejce transakcji -włącza subskrypcja dla aktualizacji w kolejce.
w kolejce pracy awaryjnej -włącza obsługę dla aktualizowania natychmiastowej aktualizacji jako opcja pracy awaryjnej w kolejce.
Ostrzeżenie
w kolejce pracy awaryjnej wymaga publikacja również włączenia natychmiastowe aktualizowanie subskrypcji.Awaryjnie do natychmiastowej aktualizacji, należy użyć sp_link_publication do definiowania poświadczenia, w których zmiany subskrybent są replikowane w Wydawca.
Subskrybent, wykonać sp_addpullsubscription_agent.Określić następujące parametry:
program publisher @, @ publisher_db, i publikacja @.
Poświadczenia systemu Windows, na jakich Agent dystrybucji subskrybent działa dla @ job_login i @ job_password.
Ostrzeżenie
Połączenia realizowane przy użyciu zintegrowanego uwierzytelniania systemu Windows są zawsze wykonywane przy użyciu poświadczenia systemu Windows określonego przez @ job_login i @ job_password.Agent dystrybucji powoduje zawsze połączenia lokalnego subskrybenta przy użyciu zintegrowanego uwierzytelniania systemu Windows.Domyślnie agent łączy się z dystrybutorem przy użyciu zintegrowanego uwierzytelniania systemu Windows.
(Opcjonalnie) Wartość 0 dla @ distributor_security_mode i SQL Server informacji logowania dla @ distributor_login i @ distributor_password, jeśli konieczne jest użycie SQL Server uwierzytelniania podczas łączenia się z dystrybutorem.
Harmonogram dla zadanie agenta dystrybucji dla tej subskrypcja.Aby uzyskać więcej informacji, zobacz Jak Określ harmonogramy synchronizacji (Programowanie replikacji Transact-SQL).
Wydawca, należy wykonać sp_addsubscriber (języka Transact-SQL) zarejestrować abonenta Wydawca.
W programie publisher, należy wykonać sp_addsubscription Określanie publikacja @, @ subskrybent, @ destination_db, wartość ściągać dla @ subscription_typei tej samej wartości określonej w kroku 3 dla @ update_mode.
Rejestruje to subskrypcja wciągana przez wydawcę.
Aby utworzyć kolejce aktualizacji replikacji wypychanejsubskrypcja
Wydawca, sprawdź, czy publikacja obsługuje kolejce subskrypcje aktualizacji przez wykonywanie sp_helppublication.
Jeśli wartość allow_queued_tran w zestaw wyników jest 1, publikacja obsługuje natychmiastowego subskrypcje aktualizacji.
Jeśli wartość allow_queued_tran w zestaw wyników jest 0, należy ponownie utworzyć publikacja w kolejce subskrypcje aktualizacji włączone.Aby uzyskać więcej informacji, zobacz Jak Włączanie aktualizacji subskrypcji dla transakcyjnych publikacje (Programowanie replikacji Transact-SQL).
Wydawca, sprawdź, czy publikacja obsługuje wypychanie subskrypcji przez wykonywanie sp_helppublication.
Jeśli wartość allow_push w zestaw wyników jest 1, subskrypcji wypychanych obsługuje publikacja.
Jeśli wartość allow_push jest 0, wykonać sp_changepublication, określanie allow_push dla @ Właściwość i true dla wartość @.
Wydawca, należy wykonać sp_addsubscription.Określ publikacja @, @ subskrybent, @ destination_db, i jeden z następujących wartości @ update_mode:
w kolejce transakcji -włącza subskrypcja dla aktualizacji w kolejce.
w kolejce pracy awaryjnej -włącza obsługę dla aktualizowania natychmiastowej aktualizacji jako opcja pracy awaryjnej w kolejce.
Ostrzeżenie
W kolejce pracy awaryjnej opcji wymaga publikacja również włączenia natychmiastowe aktualizowanie subskrypcji.Awaryjnie do natychmiastowej aktualizacji, należy użyć sp_link_publication do definiowania poświadczenia, w których zmiany subskrybent są replikowane w Wydawca.
Wydawca, należy wykonać sp_addpushsubscription_agent.Określić następujące parametry:
Subskrybent @, @ subscriber_db, i publikacja @.
Poświadczenia systemu Windows, na jakich Agent dystrybucji na dystrybutora działa dla @ job_login i @ job_password.
Ostrzeżenie
Połączenia realizowane przy użyciu zintegrowanego uwierzytelniania systemu Windows są zawsze wykonywane przy użyciu poświadczenia systemu Windows określonego przez @ job_login i @ job_password.Agent dystrybucji powoduje zawsze połączenia lokalnego dystrybutora przy użyciu zintegrowanego uwierzytelniania systemu Windows.Domyślnie agent łączy subskrybenta przy użyciu zintegrowanego uwierzytelniania systemu Windows.
(Opcjonalnie) Wartość 0 dla @ subscriber_security_mode i SQL Server informacji logowania dla @ subscriber_login i @ subscriber_password, jeśli konieczne jest użycie SQL Server uwierzytelniania podczas łączenia się z subskrybenta.
Harmonogram dla zadanie agenta dystrybucji dla tej subskrypcja.Aby uzyskać więcej informacji, zobacz Jak Określ harmonogramy synchronizacji (Programowanie replikacji Transact-SQL).
Przykład
W tym przykładzie tworzony natychmiastowej aktualizacji subskrypcja wciągana do publikacja, która obsługuje natychmiastowe aktualizowanie subskrypcji.Wartości login i hasło są dostarczane w czasie wykonywania za pomocą zmiennych wykonywanie skryptów polecenie sqlcmd.
-- 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".
-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS nvarchar(512);
SET @publication = N'AdvWorksProductTran';
SET @publicationDB = N'AdventureWorks2008R2';
SET @publisher = $(PubServer);
SET @login = $(Login);
SET @password = $(Password);
-- At the subscription database, create a pull subscription to a transactional
-- publication using immediate updating with queued updating as a failover.
EXEC sp_addpullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB,
@update_mode = N'failover',
@subscription_type = N'pull';
-- Add an agent job to synchronize the pull subscription,
-- which uses Windows Authentication when connecting to the Distributor.
EXEC sp_addpullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@job_login = @login,
@job_password = @password;
-- Add a Windows Authentication-based linked server that enables the
-- Subscriber-side triggers to make updates at the Publisher.
EXEC sp_link_publication
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB,
@security_mode = 0,
@login = @login,
@password = @password;
GO
USE AdventureWorks2008R2;
GO
-- Execute this batch at the Publisher.
DECLARE @publication AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @subscriber AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @subscriptionDB = N'AdventureWorks2008R2Replica';
SET @subscriber = $(SubServer);
-- At the Publisher, register the subscription, using the defaults.
USE [AdventureWorks2008R2]
EXEC sp_addsubscription
@publication = @publication,
@subscriber = @subscriber,
@destination_db = @subscriptionDB,
@subscription_type = N'pull',
@update_mode = N'failover';
GO