Udostępnij za pośrednictwem


W jaki sposób scalania replikacja inicjuje publikacje i subskrypcje

replikacja łączenia musi zainicjować zarówno Wydawca, jak i subskrybent danych może przepływać między nimi.Ten temat zawiera informacje na temat kroków, jakie występują podczas inicjowania.

Inicjowanie publikacja

Następujące informacje dotyczące listy kroki inicjowania dla publikacja, które występują w sposób wykonać każdej procedura przechowywana na liście lub po zakończenie Kreatora nowej publikacja.Inicjowanie dalsze występuje po Agent migawka jest uruchamiane w pierwszym czas dla publikacja.

  • sp_replicationdboption

    • baza danych publikacja Jest oznaczony do replikacja.Nie można go usunąć bazy danych, o ile nie jest usuwany z replikacja.

    • Tabele systemowe są dodawane do baza danych publikacja (chyba że publikacja korespondencji seryjnej, który jest już istnieje w bazie danych).Aby uzyskać pełną listę tabele systemowe zobacz sekcję "System tabele utworzone w publikacja i subskrypcja Databases" w tym temacie.

  • sp_addmergepublication

    • Pozycje w publikacja są dodawane do tabele systemowe.
  • sp_addpublication_snapshot

    • Zadanie migawka Agent jest dodawane do SQL Server Agent system. Nazwa zadanie jest w formularzu <Wydawca>-<PublicationDatabase>-<publikacja>-<Liczba całkowita>.
  • sp_addmergearticle

    • Każdy obiekt replikowanych jest oznaczony do replikacja.Nie można usunąć obiektu, chyba że odpowiedniego artykuł zostanie usunięte ze wszystkich publikacji.

    • Wpisy dla każdego artykuł są dodawane do tabele systemowe.

Pozostała część inicjowania dla baza danych publikacja odbywa się podczas początkowego uruchamiania agenta migawka dla publikacja (baza danych publikacja ustawienie to nie ponownie inicjowane podczas kolejnych uruchomień Agent migawek).Jeżeli używasz Kreatora nowych publikacja migawka początkowa jest tworzona domyślnie po zakończeniu pracy kreatora.Jeśli używasz procedury przechowywane, należy uruchomić zadanie agenta lub bezpośrednio uruchomić agenta.Aby uzyskać więcej informacji na temat uruchamiania agentów zobacz How to: Start and Stop a Replication Agent (SQL Server Management Studio) i Pojęcia dotyczące replikacja agenta pliki wykonywalne.

Pierwszy czas działa Agent migawka dla publikacja:

  • Kolumna o nazwie ROWGUID jest dodawana do każdej tabeli opublikowana, jeśli tabela nie ma jeszcze kolumny danych typu uniqueidentifier z ustawioną właściwość ROWGUIDCOL (w takim przypadek jest używany w tej kolumnie).The rowguid kolumna is used to uniquely identify every row in every published tabela.Jeśli w tabela zostanie usunięte z publikacja, ROWGUID kolumna zostanie usunięta, jeśli istniejącej kolumny był używany do śledzenia, w kolumnie nie jest usuwany.

  • Następujące obiekty są tworzone w baza danych publikacja dla każdego opublikowane tabela (wszystkie obiekty są tworzone w dbo schema):

    • Wstawianie, aktualizacja i usuwanie wyzwalaczy są dodawane do opublikowanych tabel do śledzenia zmian.Wyzwalacze są nazywane w formularzu MSmerge_ins_<IDENTYFIKATOR GUID>, MSmerge_upd_<IDENTYFIKATOR GUID>, a MSmerge_del_<IDENTYFIKATOR GUID>. Wartość identyfikatora GUID jest tworzona z wpisu w artykule w tabela systemowa sysmergearticles.

    • Procedury przechowywane są tworzone wstawia, aktualizacji i usunięć do opublikowanych tabel oraz wykonywać wiele innych operacji związanych z replikacja.

    • Widoki są utworzone do zarządzania wstawia, aktualizacje, usuwa i filtrowania.

    • Tabele konfliktów są tworzone w celu przechowywania informacji o konflikcie.Tabele konfliktów Dopasuj schemat opublikowanych tabel: inicjowanych przez skrypty każdego opublikowanego tabela, a następnie skrypt jest używany do tworzenia tabela konfliktów w baza danych publikacja. Tabele konfliktów są nazywane w formularzu dbo.MSmerge_conflict_<publikacja>_<Artykuł>.

Za każdym razem jest uruchomiony agent migawka, następujące typy plików (o ich odpowiednie rozszerzenia plików) są tworzone dla każdego artykuł w baza danych publikacja:

  • Schemat (.sch)

  • Bez ograniczeń i indeksów (.dri)

  • Wyzwalacze (.trg)

  • Dane w tabela systemu (.sys)

  • Tabele konfliktów (.cft)

  • Dane nie są tworzone dla publikacji z filtrami sparametryzowana (.bcp)--.

    Jeśli publikacja nie używa żadnych filtrów sparametryzowana, migawka zawiera dane do opublikowanych tabel zestaw plików .bcp.Jeśli w publikacja używane sparametryzowana filtrów (która jest typowe dla publikacja korespondencji seryjnej), migawka początkowa nie zawiera żadnych danych.Dane są dostarczane przez subskrybent partycji, która została omówiona w sekcji "Inicjowania a subskrypcja" przy użyciu migawka.

Inicjowanie subskrypcja

Każdy subskrypcja jest inicjowana, gdy agent korespondencji seryjnej dla subskrypcja, a skopiuje wstępne migawka do baza danych subskrypcja.Oprócz schemat oraz dane z replikowanych obiektów, migawka zawiera tabele systemowe, widoki, wyzwalaczy i procedur przechowywanych, które istnieją w baza danych publikacja (jedną lub dwie tabele systemowe dodatkowe są również kopiowane do baza danych subskrypcja).Aby uzyskać pełną listę tabele systemowe zobacz sekcję "System tabele utworzone w publikacja i subskrypcja Databases" w tym temacie.Jeśli ustawienie ponownie subskrypcję inicjowane są zastępowane wszystkich replikowanych obiektów i obiekty systemu replikacja.

Jeśli żadna z tabel w baza danych publikacja za pomocą filtrów sparametryzowana, te same migawka publikacja zostanie skopiowany do każdej subskrybent.Jeśli używane są co najmniej jeden filtr sparametryzowana, sposób, w którym każdy subskrypcja jest inicjowana jest objęte następującej logiki:

  • Jeżeli lokalizacja migawka został dostarczony do agenta scalania w wierszu polecenia:

    • Zastosowanie migawka z tej lokalizacji.
  • Else, jeśli migawka został pre-generated:

    • Pobieranie lokalizacji migawka z MSmerge_dynamic_snapshots w publikacja bazy danych i zastosować migawka z tej lokalizacji.
  • Else, jeśli publikacja umożliwia subskrybentów zainicjować migawki:

    • migawka został już wygenerowany dla subskrybent innego z tej samej partycji, zastosować tę migawkę subskrybent.

    • Else generować i dotyczą migawkę subskrybent.

  • Else zainicjować subskrybent za pomocą instrukcji SELECT wobec tabel w publikacja.Ta metoda jest dużo wolniejsza niż przy użyciu migawka abonenta partycji.

Jeśli migawka transferu zostanie przerwana w dowolnym momencie, zostanie automatycznie wznowione i nie wyśle wszystkie pliki, które już zostały całkowicie przeniesione.Jednostka dostawy dla agenta migawka jest pliku bcp dla każdego artykuł publikacja, więc pliki, które są dostarczane częściowo musi być całkowicie redelivered.Jednak wznawianie migawkę można znacznie zmniejszyć ilość danych wymienianych i zapewnienia migawka czas dostawy, nawet jeżeli połączenie jest tymczasowy.Aby uzyskać więcej informacji na temat tworzenia migawek zobacz Migawki publikacji korespondencji seryjnej z filtrami sparametryzowana.

Lokalizacja migawka

Lokalizacja migawka zależy od: Ścieżka określona dla domyślnego lub migawki alternatywnej lokalizacji; czy publikacja używa ścieżki UNC lub w udziale FTP dla folderu migawka; i czy użytych parametrów filtrów. W tym przykładzie zakłada się, że lokalizacja folderu migawka jest: \\<Mój komputer > \ MójFolder > < \:

  • Jeśli w publikacja używane UNC, jest pierwszą częścią ścieżka: \\<Mój komputer > \ \unc\ > < MójFolder. Jeśli użyto FTP, to: \\<Mój komputer > \ \ftp\ > < MójFolder.

  • Jeśli publikacja używa UNC, a nie korzysta z parametrami filtry, ścieżka jest następująca: \\<Mój komputer > \ MójFolder > \unc\ < Wydawca > _ < Publicationdb > _ < publikacja > <

  • Publikacja wykorzystuje UNC i wykorzystuje sparametryzowana filtry, lokalizacji opiera się na ścieżka folderu migawka i parametrami wiersza filtrowanie kryteria dla publikacji.Na przykład, jeżeli artykuł jest filtrowana za pomocą HOST_NAME() funkcja i wartość HOST_NAME() dla partycji jest "SalesLaptop", to ścieżka do migawka dla tej partycji: \\<Mój komputer > \ MójFolder > \unc\ < Wydawca > _ < Publicationdb > _ < publikacja > < \ SalesLaptop_12\, gdzie 12 jest IDENTYFIKATOREM używane wewnętrznie do partycji.

Tabele systemowe utworzone w publikacja i bazy danych subskrypcja

W poniższej tabeli są tworzone w bazie danych publikacja i każdej baza danych subskrypcja.

Table

Description

MSdynamicsnapshotjobs (języka Transact-SQL)

Zawiera informacje dotyczące zadań migawka dla publikacji z parametrami filtrami.

MSdynamicsnapshotviews (języka Transact-SQL)

Śledzi wszystkie tymczasowe migawkę widoki utworzone przez agenta migawka.Jest on używany przez system do czyszczenia widoków w przypadek z nieprawidłowego zamknięcia SQL Server Agent lub agenta migawka.

MSmerge_altsyncpartners (języka Transact-SQL)

Śledzi skojarzenia, którzy są aktualnie partnerów do synchronizacji od Wydawca.

MSmerge_articlehistory (Transact-SQL)

Śledzi zmiany wprowadzane artykuły w trakcie sesja synchronizacji agenta korespondencji seryjnej o jeden wiersz dla każdego artykuł, do którego wprowadzono zmiany.

MSmerge_conflicts_info (Transact-SQL)

Konflikty ścieżek, które występują podczas synchronizacji subskrypcja do publikacja korespondencji seryjnej.

MSmerge_contents (Transact-SQL)

Zawiera jeden wiersz dla każdego wiersza, zmodyfikowana w bieżącej bazie danych po jego podpisaniu.Ta tabela służy przez proces korespondencji seryjnej, aby określić wiersze, które uległy zmianie.

MSmerge_current_partition_mappings

Zawiera jeden wiersz dla każdej partycji, której należy dany wiersz zmienione.

MSmerge_dynamic_snapshots (języka Transact-SQL)

Śledzenie lokalizacji migawka dla każdej partycji zdefiniowane dla publikacja korespondencji seryjnej.

MSmerge_errorlineage (języka Transact-SQL)

Zawiera wiersze, które zostały usunięte przez subskrybent, ale których usunięcie nie są propagowane do Wydawca.

MSmerge_generation_partition_mappings (Transact-SQL)

Śledzi, czy dany generowania zawiera wszystkie zmiany, które są odpowiednie dla danej partycji.

MSmerge_genhistory (języka Transact-SQL)

Zawiera jeden wiersz dla każdego generacji.Do generacji jest kolekcją zmiany, która jest dostarczana do Wydawca lub subskrybent.Są generacji zamknięte przy każdym Agent korespondencji seryjnej działa; kolejnych zmian w bazie danych są dodawane do jednego lub kilku Otwórz generacji.

MSmerge_history (języka Transact-SQL)

Zawiera wiersze, historia szczegółowe opisy wyniki poprzednich sesji zadanie agenta korespondencji seryjnej.

MSmerge_identity_range (Transact-SQL)

Śledzi numeryczne zakresów przypisanych do kolumny identyfikacji subskrypcji do publikacji, dla których replikacja automatycznie zarządza przydziałów zakres.

MSmerge_metadataaction_request (Transact-SQL)

Zawiera jeden wiersz dla każdej akcja kompensacyjne, które są wymagane.Akcja kompensacyjne jest używana w celu wycofania zmiany w jednym z węzłów, jeśli zmiany nie powiodło się w innym węźle.

MSmerge_partition_groups (Transact-SQL)

Zawiera jeden wiersz dla każdej partycji precomputed w danej bazie danych.

MSmerge_past_partition_mappings (języka Transact-SQL)

Zawiera jeden wiersz dla każdej partycji używane należące do danego wiersza zmienione, ale nie jest już należy.

MSmerge_replinfo (języka Transact-SQL)

Zawiera jeden wiersz dla każdej subskrypcja.Ta tabela śledzi informacji wewnętrznych o wysyłanych i odbieranych generacji.

MSmerge_sessions (Transact-SQL)

Zawiera historia wierszy, których wyniki poprzedniego Agent Scal zadań sesji.

MSmerge_settingshistory (języka Transact-SQL)

Zawiera historię zmian właściwości artykuł i publikacja o jeden wiersz dla każdej zmiany.

MSmerge_tombstone (Transact-SQL)

Zawiera informacje o usuniętych wierszy i umożliwia usuwanie być propagowane do innych subskrybentów.

MSrepl_errors (Transact-SQL)

Zawiera szczegółowe informacje na temat błędów agenta.

sysmergearticles (języka Transact-SQL)

Zawiera jeden wiersz dla każdego artykuł korespondencji seryjnej.

sysmergepartitioninfo (Transact-SQL)

Zawiera informacje dotyczące partycji dla każdego artykuł o jeden wiersz dla każdego artykuł.

sysmergepartitioninfoview (języka Transact-SQL)

Zawiera informacje o partycjonowanie tabela artykułów.

sysmergepublications (języka Transact-SQL)

Zawiera jeden wiersz dla każdej publikacja korespondencji seryjnej.

sysmergeschemaarticles (Transact-SQL)

Śledzi tylko do schematu artykułów, takie jak procedury przechowywane.

sysmergeschemachange (Transact-SQL)

Zawiera informacje dotyczące opublikowanych artykułów generowane przez agenta migawka.

sysmergesubscriptions (Transact-SQL)

Zawiera jeden wiersz dla każdego subskrybent.

sysmergesubsetfilters (Transact-SQL)

Zawiera łączyć filtrowania informacji dla artykułów podzielonym na partycje.

Ponadto MSsnapshotdeliveryprogress tabela jest tworzona w każdej baza danych subskrypcja i MSsubscription_properties tabela jest tworzona w każdej baza danych subskrypcja korzystającej z subskrypcja ściąganej:

Table

Description

MSsnapshotdeliveryprogress (języka Transact-SQL)

Ścieżki plików, które zostały pomyślnie dostarczone do subskrybent po zastosowaniu migawka.Tych danych jest używany do wznowienia dostarczanie plików na wypadek awarii Agent korespondencji seryjnej do dostarczania wszystkich plików podczas sesja.

MSsubscription_properties (języka Transact-SQL)

Zawiera informacje o parametrach wymaganych do uruchomienia replikacja agentów subskrybent