Jak Włączanie aktualizacji subskrypcji dla transakcyjnych publikacje (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.
Podczas tworzenia publikacja transakcyjnych programowo przy użyciu replikacja procedur przechowywanych, można włączyć natychmiastowe lub aktualizowanie subskrypcje w kolejce.
![]() |
---|
Jeśli to możliwe, monitują użytkowników o wprowadzenie poświadczenia zabezpieczeń w czasie wykonywania.Jeśli poświadczenia muszą być przechowywane w pliku skryptu, należy zabezpieczyć plik, aby uniemożliwić nieautoryzowany dostęp. |
Aby utworzyć publikacja, która obsługuje natychmiastowego subskrypcje aktualizacji
Jeśli to konieczne, Utwórz Agent odczytywania dziennika zadanie dla baza danych publikacji.
Jeśli zadanie Agent czytnik dziennika już istnieje dla baza danych publikacja, przejdź do kroku 2.
Jeśli wiadomo, czy istnieje zadanie agenta czytnik dziennika dla bazy danych opublikowanych, wykonywał sp_helplogreader_agent (języka Transact-SQL) Wydawca na baza danych publikacja.Jeśli zestaw wyników jest pusta, Agent odczytywania dziennika można utworzyć zadanie.
W programie publisher, należy wykonać sp_addlogreader_agent (języka Transact-SQL).Określ Microsoft poświadczenia systemu Windows, na jakich agent działa dla @ job_name i hasło @.If the agent will use SQL Server Authentication when connecting to the Publisher, you must also specify a value of 0 for @publisher_security_mode and the Microsoft SQL Server login information for @publisher_login and @publisher_password.
Wykonanie sp_addpublication (języka Transact-SQL), określając wartość true dla parametru @ allow_sync_tran.
Wydawca, należy wykonać sp_addpublication_snapshot (języka Transact-SQL).Określ nazwę publikacja, w kroku 2 dla publikacja @ i poświadczenia systemu Windows, na jakich Agent migawki jest uruchamiany dla @ job_name i hasło @.Jeśli agent użyje uwierzytelniania programu SQL Server podczas łączenia się z Wydawca, należy także określić wartość 0 dla @Wydawca_security_mode i SQL Server informacji logowania dla @Wydawca_login i @Wydawca_password.Tworzy zadanie agenta migawkę w publikacja.
Dodać artykułów do publikacja.Aby uzyskać więcej informacji, zobacz Jak Definiowanie artykuł (Programowanie replikacji Transact-SQL).
Subskrybent, tworzenie, aktualizowanie subskrypcja do tej publikacja.Aby uzyskać więcej informacji, zobacz Jak Tworzenie aktualizowalna subskrypcji transakcyjnych publikacji (Programowanie replikacji Transact-SQL).
Aby utworzyć publikacja, która obsługuje kolejce subskrypcje aktualizacji
Jeśli to konieczne, Utwórz Agent odczytywania dziennika zadanie dla baza danych publikacji.
Jeśli zadanie Agent czytnik dziennika już istnieje dla baza danych publikacja, przejdź do kroku 2.
Jeśli wiadomo, czy istnieje zadanie agenta czytnik dziennika dla bazy danych opublikowanych, wykonywał sp_helplogreader_agent (języka Transact-SQL) Wydawca na baza danych publikacja.Jeśli zestaw wyników jest pusta, a następnie Agent odczytywania dziennika można utworzyć zadanie.
W programie publisher, należy wykonać sp_addlogreader_agent (języka Transact-SQL).Określ poświadczenia systemu Windows, na jakich agent działa dla @ job_name i hasło @.Jeśli agent użyje uwierzytelniania programu SQL Server podczas łączenia się z Wydawca, należy także określić wartość 0 dla @Wydawca_security_mode i SQL Server informacji logowania dla @Wydawca_login i @Wydawca_password.
W razie potrzeby można utworzyć zadanie agenta czytnik kolejki dla dystrybutora.
Jeśli zadanie agenta czytnik kolejka jest już w baza danych dystrybucji, przejdź do kroku 3.
Jeśli masz pewności, czy zadanie agenta czytnik kolejka istnieje dla baza danych dystrybucji wykonać sp_helpqreader_agent (języka Transact-SQL) u dystrybutora w bazie danych dystrybucji.Jeśli zestaw wyników jest puste, można utworzyć zadanie agenta czytnik kolejki.
wykonać na Dystrybutor, sp_addqreader_agent (języka Transact-SQL).Określ poświadczenia systemu Windows, na jakich agent działa dla @ job_name i hasło @.Poświadczenia te są używane, gdy Agent czytnik kolejki łączy się z Wydawca i abonenta.Aby uzyskać więcej informacji, zobacz Model zabezpieczeń Agent replikacji.
Wykonanie sp_addpublication (języka Transact-SQL), określając wartość true dla parametru @ allow_queued_tran i wartości pub wins, ponownego inicjowania sub, lub sub wins dla @ conflict_policy.
Wydawca, należy wykonać sp_addpublication_snapshot (języka Transact-SQL).Określ nazwę publikacja w kroku 3 dla publikacja @ i poświadczenia systemu Windows, na jakich Agent migawki jest uruchamiany dla @ snapshot_job_name i hasło @.Jeśli agent użyje uwierzytelniania programu SQL Server podczas łączenia się z Wydawca, należy także określić wartość 0 dla @Wydawca_security_mode i SQL Server informacji logowania dla @Wydawca_login i @Wydawca_password.Tworzy zadanie agenta migawkę w publikacja.
Dodać artykułów do publikacja.Aby uzyskać więcej informacji, zobacz Jak Definiowanie artykuł (Programowanie replikacji Transact-SQL).
Subskrybent, tworzenie, aktualizowanie subskrypcja do tej publikacja.Aby uzyskać więcej informacji, zobacz Jak Tworzenie aktualizowalna subskrypcji transakcyjnych publikacji (Programowanie replikacji Transact-SQL).
Aby zmienić konfliktu zasady dla publikacja, który umożliwia kolejce subskrypcje aktualizacji
- Wydawca na baza danych publikacja, wykonanie sp_changepublication (języka Transact-SQL).Określ wartość conflict_policy dla @ Właściwość i zasad konfliktu żądany tryb pub wins, ponownego inicjowania sub, lub sub wins dla wartość @.
Przykład
W tym przykładzie tworzony publikację, która obsługuje zarówno natychmiastowe, jak i aktualizowanie w kolejce ściągać subskrypcji.
-- To avoid storing the login and password in the script file, the values
-- are passed into SQLCMD as scripting variables. 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".
--Declarations for adding a transactional publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2008R2';
SET @publication = N'AdvWorksProductTran';
SET @login = $(Login);
SET @password = $(Password);
USE [AdventureWorks2008R2]
-- Enable transactional replication on the publication database.
EXEC sp_replicationdboption
@dbname=@publicationDB,
@optname=N'publish',
@value = N'true';
-- Execute sp_addlogreader_agent to create the agent job.
EXEC sp_addlogreader_agent
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
-- Create a transactional publication that supports immediate updating,
-- queued updating, and pull subscriptions.
EXEC sp_addpublication
@publication = @publication,
@status = N'active',
@allow_sync_tran = N'true',
@allow_queued_tran = N'true',
@allow_pull = N'true',
@independent_agent = N'true',
-- Explicitly declare the related default properties
@conflict_policy = N'pub wins';
-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
GO
--Declarations for adding an article.
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @owner AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @owner = N'Production';
-- Add a horizontally and vertically filtered article for the Product table.
USE [AdventureWorks2008R2]
EXEC sp_addarticle
@publication = @publication,
@article = @article,
@source_table = @article,
@vertical_partition = N'false',
@type = N'logbased',
@source_owner = @owner,
@destination_owner = @owner;
GO
Zobacz także