Jak Tworzenie migawki początkowego (Programowanie RMO)
Po utworzeniu publikacja, Agent migawki generuje migawek.Migawki te można generować programowo przy użyciu obiektów zarządzania replikacja (RMO) i kod zarządzany bezpośredni dostęp do funkcji agenta replikacja.Używanych obiektów zależą od typu replikacja.Można uruchomić agenta migawki synchronicznie przy użyciu SnapshotGenerationAgent obiektu lub asynchronicznie za pomocą zadanie agenta.Po migawka początkowa został wygenerowany, jest przekazywane i stosowane przez subskrybenta po pierwszym zsynchronizowaniu subskrypcja.Musisz ponownie uruchomić agenta, ilekroć migawka istniejących już zawiera ważne,-do-data danych.Aby uzyskać więcej informacji, zobacz Utrzymywanie publikacje.
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 RMO).
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, usługi kryptograficzne dostarczonych przez Microsoft systemu Windows.NET Framework. |
Aby wygenerować migawka początkowa dla migawki lub transakcyjnych publikacja przez uruchomienie zadanie agenta migawki (asynchronicznej)
Tworzenie połączenia do Wydawca za pomocą ServerConnection klasy
Utworzenie wystąpienie TransPublication klasyUstaw Name i DatabaseName właściwość publikacja i zestaw ConnectionContext właściwość połączenia, utworzony w kroku 1.
Wywołanie LoadProperties metoda załadować pozostałe właściwości obiektu.Jeśli ta metoda zwraca false, publikacja nie istnieje albo niepoprawnie zostały zdefiniowane właściwości publikacji w kroku 2.
Jeśli wartość SnapshotAgentExists jest false, call CreateSnapshotAgent utworzyć zadanie agenta migawka dla publikacja.
Wywołanie StartSnapshotGenerationAgentJob metoda, aby uruchomić zadanie agenta, który generuje migawka dla publikacja.
(Opcjonalnie) Gdy wartość SnapshotAvailable jest true, migawka jest dostępne dla subskrybentów.
Aby wygenerować migawka początkowa dla migawki lub transakcyjnych publikacja przez uruchomienie agenta migawki (synchroniczną)
Utworzenie wystąpienie SnapshotGenerationAgent klasy, a zestaw następujące wymagane właściwości:
Publisher -NazwaWydawca
PublisherDatabase -Nazwa baza danych publikacji
Publication -Nazwa publikacja
Distributor -nazwę dystrybutora
PublisherSecurityMode-wartość Integrated uwierzytelniania systemu Windows podczas łączenia się z wydawcą lub wartość Standard i wartości dla PublisherLogin i PublisherPassword używać SQL Server uwierzytelniania podczas łączenia się z Wydawca.Zalecane jest uwierzytelnianie systemu Windows.
DistributorSecurityMode-wartość Integrated uwierzytelniania systemu Windows podczas łączenia się z dystrybutorem lub wartość Standard i wartości dla DistributorLogin i DistributorPassword używać SQL Server uwierzytelniania podczas łączenia się z dystrybutorem.Zalecane jest uwierzytelnianie systemu Windows.
Set a value of Transactional or Snapshot for ReplicationType.
Wywołanie GenerateSnapshot metoda.
Aby wygenerować migawka początkowa dla publikacja seryjnej przez uruchomienie zadanie agenta migawki (asynchronicznej)
Tworzenie połączenia do Wydawca za pomocą ServerConnection klasy
Utworzenie wystąpienie MergePublication klasyUstaw Name i DatabaseName właściwość publikacja i zestaw ConnectionContext właściwość połączenia, utworzony w kroku 1.
Wywołanie LoadProperties metoda załadować pozostałe właściwości obiektu.Jeśli ta metoda zwraca false, publikacja nie istnieje albo niepoprawnie zostały zdefiniowane właściwości publikacji w kroku 2.
Jeśli wartość SnapshotAgentExists jest false, call CreateSnapshotAgent utworzyć zadanie agenta migawka dla publikacja.
Wywołanie StartSnapshotGenerationAgentJob metoda, aby uruchomić zadanie agenta, który generuje migawka dla publikacja.
(Opcjonalnie) Gdy wartość SnapshotAvailable jest true, migawka jest dostępne dla subskrybentów.
Aby wygenerować migawka początkowa dla publikacja seryjnej przez uruchomienie agenta migawki (synchroniczną)
Utworzenie wystąpienie SnapshotGenerationAgent klasy, a zestaw następujące wymagane właściwości:
Publisher -NazwaWydawca
PublisherDatabase -Nazwa baza danych publikacji
Publication -Nazwa publikacja
Distributor -nazwę dystrybutora
PublisherSecurityMode-wartość Integrated uwierzytelniania systemu Windows podczas łączenia się z wydawcą lub wartość Standard i wartości dla PublisherLogin i PublisherPassword używać SQL Server uwierzytelniania podczas łączenia się z Wydawca.Zalecane jest uwierzytelnianie systemu Windows.
DistributorSecurityMode-wartość Integrated uwierzytelniania systemu Windows podczas łączenia się z dystrybutorem lub wartość Standard i wartości dla DistributorLogin i DistributorPassword używać SQL Server uwierzytelniania podczas łączenia się z dystrybutorem.Zalecane jest uwierzytelnianie systemu Windows.
Ustawiona wartość Merge dla ReplicationType.
Wywołanie GenerateSnapshot metoda.
Przykład
W tym przykładzie uruchamiane synchronicznie agenta migawki do generowania migawka początkowa dla transakcyjnych publikacja.
// Set the Publisher, publication database, and publication names.
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2008R2";
string publisherName = publisherInstance;
string distributorName = publisherInstance;
SnapshotGenerationAgent agent;
try
{
// Set the required properties for Snapshot Agent.
agent = new SnapshotGenerationAgent();
agent.Distributor = distributorName;
agent.DistributorSecurityMode = SecurityMode.Integrated;
agent.Publisher = publisherName;
agent.PublisherSecurityMode = SecurityMode.Integrated;
agent.Publication = publicationName;
agent.PublisherDatabase = publicationDbName;
agent.ReplicationType = ReplicationType.Transactional;
// Start the agent synchronously.
agent.GenerateSnapshot();
}
catch (Exception ex)
{
// Implement custom application error handling here.
throw new ApplicationException(String.Format(
"A snapshot could not be generated for the {0} publication."
, publicationName), ex);
}
' Set the Publisher, publication database, and publication names.
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2008R2"
Dim publisherName As String = publisherInstance
Dim distributorName As String = publisherInstance
Dim agent As SnapshotGenerationAgent
Try
' Set the required properties for Snapshot Agent.
agent = New SnapshotGenerationAgent()
agent.Distributor = distributorName
agent.DistributorSecurityMode = SecurityMode.Integrated
agent.Publisher = publisherName
agent.PublisherSecurityMode = SecurityMode.Integrated
agent.Publication = publicationName
agent.PublisherDatabase = publicationDbName
agent.ReplicationType = ReplicationType.Transactional
' Start the agent synchronously.
agent.GenerateSnapshot()
Catch ex As Exception
' Implement custom application error handling here.
Throw New ApplicationException(String.Format( _
"A snapshot could not be generated for the {0} publication." _
, publicationName), ex)
End Try
W tym przykładzie asynchronicznie uruchamia zadanie agenta do generowania migawka początkowa dla transakcyjnych publikacja.
// Set the Publisher, publication database, and publication names.
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2008R2";
string publisherName = publisherInstance;
TransPublication publication;
// Create a connection to the Publisher using Windows Authentication.
ServerConnection conn;
conn = new ServerConnection(publisherName);
try
{
// Connect to the Publisher.
conn.Connect();
// Set the required properties for an existing publication.
publication = new TransPublication();
publication.ConnectionContext = conn;
publication.Name = publicationName;
publication.DatabaseName = publicationDbName;
if (publication.LoadProperties())
{
// Start the Snapshot Agent job for the publication.
publication.StartSnapshotGenerationAgentJob();
}
else
{
throw new ApplicationException(String.Format(
"The {0} publication does not exist.", publicationName));
}
}
catch (Exception ex)
{
// Implement custom application error handling here.
throw new ApplicationException(String.Format(
"A snapshot could not be generated for the {0} publication."
, publicationName), ex);
}
finally
{
conn.Disconnect();
}
' Set the Publisher, publication database, and publication names.
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2008R2"
Dim publisherName As String = publisherInstance
Dim publication As TransPublication
' Create a connection to the Publisher using Windows Authentication.
Dim conn As ServerConnection
conn = New ServerConnection(publisherName)
Try
' Connect to the Publisher.
conn.Connect()
' Set the required properties for an existing publication.
publication = New TransPublication()
publication.ConnectionContext = conn
publication.Name = publicationName
publication.DatabaseName = publicationDbName
If publication.LoadProperties() Then
' Start the Snapshot Agent job for the publication.
publication.StartSnapshotGenerationAgentJob()
Else
Throw New ApplicationException(String.Format( _
"The {0} publication does not exist.", publicationName))
End If
Catch ex As Exception
' Implement custom application error handling here.
Throw New ApplicationException(String.Format( _
"A snapshot could not be generated for the {0} publication." _
, publicationName), ex)
Finally
conn.Disconnect()
End Try