Udostępnij za pośrednictwem


Jak Tworzenie migawki początkowego (Programowanie replikacji Transact-SQL)

Migawki początkowego można programowo utworzyć przez utworzenie i uruchomienie zadanie agenta migawki lub przez uruchomienie pliku wykonywalnego migawki agenta z partia pliku.Po migawka początkowa został wygenerowany, jest przekazywane i stosowane przez subskrybenta po pierwszym zsynchronizowaniu subskrypcja.Jeśli uruchomienie agenta migawka wiersz polecenia lub partia pliku, musisz ponownie uruchomić agenta, ilekroć istniejących migawka staje się nieprawidłowy.

Publikacji korespondencji seryjnej, które filtry sparametryzowana wymagają dwóch części migawka.Aby uzyskać więcej informacji, zobacz Jak Utworzyć migawkę dla publikacji korespondencji seryjnej za pomocą sparametryzowanych filtrów (Programowanie replikacji Transact-SQL).

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

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ć i uruchomić zadanie agenta migawka do generowaniamigawka początkowa

  1. Tworzenie migawka transakcyjnych, lub scalić publikacja.Aby uzyskać więcej informacji, zobacz Jak Tworzenie publikacji (Programowanie replikacji Transact-SQL).

  2. Wykonanie sp_addpublication_snapshot (języka Transact-SQL).Określ publikacja @ i następujących parametrów:

    • @ Job_login, który określa poświadczenia uwierzytelniania systemu Windows, na jakich Agent migawki jest uruchamiany na dystrybutora.

    • @ Job_password, który jest hasło podane poświadczenia systemu Windows.

    • (Opcjonalnie) Wartość 0 dla @Wydawca_security_mode jeśli agent użyje uwierzytelniania programu SQL Server podczas łączenia się z Wydawca.W takim przypadek należy także określić informacje logowania uwierzytelniania programu SQL Server dla @ publisher_login i @ publisher_password.

    • (Opcjonalnie) Harmonogram synchronizacji dla zadanie agenta migawki.Aby uzyskać więcej informacji, zobacz Jak Określ harmonogramy synchronizacji (Programowanie replikacji Transact-SQL).

    Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

    Podczas konfigurowania Publisher z dystrybutor zdalny, wartości dostarczone dla wszystkich parametrów, łącznie z job_login i job_password, są wysyłane do dystrybutora jako zwykły tekst.Należy zaszyfrować połączenie między wydawcy i jego dystrybutor zdalny przed wykonywania tej procedura składowana.Aby uzyskać więcej informacji, zobacz Szyfrowania połączeńSQL Server.

  3. Dodać artykułów do publikacja.Aby uzyskać więcej informacji, zobacz Jak Definiowanie artykuł (Programowanie replikacji Transact-SQL).

  4. Wydawca na baza danych publikacja, wykonanie sp_startpublication_snapshot (języka Transact-SQL), określając wartość publikacja @ z kroku 1.

Uruchomić agenta migawka, generowaniemigawka początkowa

  1. Tworzenie migawka transakcyjnych, lub scalić publikacja.Aby uzyskać więcej informacji, zobacz Jak Tworzenie publikacji (Programowanie replikacji Transact-SQL).

  2. Dodać artykułów do publikacja.Aby uzyskać więcej informacji, zobacz Jak Definiowanie artykuł (Programowanie replikacji Transact-SQL).

  3. wiersz polecenia lub w partia plik, uruchom Agent replikacji migawki za migawka.exe, określając następujące argumenty wiersz polecenia:

    • -Publikacja

    • -Wydawca

    • -Dystrybutor

    • -PublisherDB

    • -ReplicationType

    Jeśli używasz uwierzytelniania programu SQL Server, należy także określić następujące argumenty:

    • -DistributorLogin

    • -DistributorPassword

    • -DistributorSecurityMode = 0

    • -PublisherLogin

    • -PublisherPassword

    • -PublisherSecurityMode = 0

Przykład

W tym przykładzie pokazano, jak utworzyć publikacja transakcyjnych i dodać zadanie agenta migawki nowej publikacja (za pomocą polecenie sqlcmd wykonywanie skryptów zmiennych).Przykład również uruchamia zadanie.

-- 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".

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2008R2'; --publication database
SET @publication = N'AdvWorksCustomerTran'; -- transactional publication name
SET @login = $(Login);
SET @password = $(Password);

USE [AdventureWorks2008R2]

-- Enable transactional and snapshot 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 security mode used when connecting to the Publisher.
  @publisher_security_mode = 1;

-- Create new transactional publication, using the defaults. 
USE [AdventureWorks2008R2]
EXEC sp_addpublication 
  @publication = @publication, 
  @description = N'transactional publication';

-- Create a new snapshot job for the publication, using the defaults.
EXEC sp_addpublication_snapshot 
  @publication = @publication,
  @job_login = @login,
  @job_password = @password;

-- Start the Snapshot Agent job.
EXEC sp_startpublication_snapshot @publication = @publication;
GO

W tym przykładzie publikacja seryjnej tworzy i dodaje zadanie agenta migawki (za pomocą polecenie sqlcmd zmiennych) w publikacja.W tym przykładzie również uruchamia zadanie.

-- To avoid storing the login and password in the script file, the value 
-- is passed into SQLCMD as a scripting variable. 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".

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2008R2'; 
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @login = $(Login);
SET @password = $(Password);

-- Enable merge replication on the publication database.
USE master
EXEC sp_replicationdboption 
  @dbname = @publicationDB, 
  @optname=N'merge publish',
  @value = N'true';

-- Create new merge publication, using the defaults. 
USE [AdventureWorks2008R2]
EXEC sp_addmergepublication 
  @publication = @publication, 
  @description = N'Merge publication.';

-- Create a new snapshot job for the publication, using the defaults.
EXEC sp_addpublication_snapshot 
  @publication = @publication,
  @job_login = @login,
  @job_password = @password;

-- Start the Snapshot Agent job.
EXEC sp_startpublication_snapshot @publication = @publication;
GO

Następujące argumenty wiersza polecenia Uruchom agenta migawka wygenerować migawkę dla publikacja korespondencji seryjnej.

Ostrzeżenie

Podziały zostały dodane do poprawy czytelności.W partia pliku, polecenia muszą być wykonane w jednym wierszu.

REM -- Declare variables
SET Publisher=%InstanceName%
SET PublicationDB=AdventureWorks2008R2 
SET Publication=AdvWorksSalesOrdersMerge 

REM --Start the Snapshot Agent to generate the snapshot for AdvWorksSalesOrdersMerge.
"C:\Program Files\Microsoft SQL Server\100\COM\SNAPSHOT.EXE" -Publication %Publication% 
-Publisher %Publisher% -Distributor %Publisher% -PublisherDB %PublicationDB% 
-ReplicationType 2 -OutputVerboseLevel 1 -DistributorSecurityMode 1