Udostępnij za pośrednictwem


Sposób scalania replikacji inicjuje publikacje i subskrypcje

Replikacja scalania należy zainicjować zarówno Wydawca i abonenta przed danych może przepływać między nimi.Ten temat zawiera informacje dotyczące czynności, które występują podczas inicjowania.

Inicjowanie publikacji

Następujące szczegóły listy inicjowania kroki dla publikacja, które występują wykonać każdej procedura składowana, wymienionych lub zakończyć Kreatora nowej publikacja.Inicjowanie dalszych występuje po Agent migawki jest uruchamiany w pierwszym czas dla publikacja.

  • sp_replicationdboption

    • baza danych publikacja Jest oznaczony do replikacja.Bazy danych nie można usunąć, chyba że replikacja jest usuwany.

    • Tabele systemowe są dodawane do baza danych publikacji (chyba że publikacja seryjnej już istnieje w bazie danych).Aby uzyskać pełną listę tabele systemowe zobacz sekcję "System tabele utworzone w publikacji subskrypcji danych i" w tym temacie.

  • sp_addmergepublication

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

    • Zadanie agenta migawki jest dodawane do SQL Server system Agent.Nazwa zadanie jest w postaci <Wydawca>—<PublicationDatabase>—<publikacji>—<całkowitą>.
  • sp_addmergearticle

    • Każdy obiekt replikowany 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.

Reszta inicjowania dla baza danych publikacja podczas początkowego uruchamiania agenta migawki dla publikacja ( baza danych publikacja ustawienie to nie ponownie inicjowane podczas kolejnych uruchomień agenta migawki).Jeśli używasz Kreatora nowej publikacji migawka początkowa jest tworzony domyślnie po zakończeniu pracy kreatora.Jeśli używasz procedury przechowywane, musi uruchomić zadanie agenta lub bezpośrednio uruchomić agenta.Aby uzyskać więcej informacji o uruchamianiu agentów, zobacz Jak Uruchamianie i zatrzymywanie Agent replikacji (SQL Server Management Studio) i Pojęcia dotyczące plików wykonywalnych Agent replikacji.

Pierwszy czas działa Agent migawki publikacja:

  • Kolumna o nazwie rowguid jest dodawane do każdej tabeli opublikowane, chyba, że tabela ma już kolumny danych typu uniqueidentifier z zestaw właściwość ROWGUIDCOL (w tym przypadek jest używany w tej kolumnie).Rowguid kolumna jest używana do unikatowej identyfikacji każdego wiersza w każdej tabela opublikowane.Jeśli tabela jest przenoszony z publikacja, rowguid kolumna zostanie usunięte; Jeśli użyto istniejącej kolumny śledzenia, kolumna nie jest usuwany.

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

    • INSERT, update i delete wyzwalacze są dodawane do opublikowanych tabel do śledzenia zmian.Wyzwalacze są o nazwie w postaci MSmerge_ins_<GUID>, MSmerge_upd_<GUID>, i MSmerge_del_<GUID>.Wartość identyfikatora GUID jest pochodną wpis w tabela systemowa artykuł sysmergearticles.

    • Procedury przechowywane zostały utworzone obsługi wstawiania, aktualizacji i usuwania opublikowanych tabel oraz wykonywać wiele innych operacji związanych z replikacja.

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

    • Tabele konfliktów są tworzone przechowywać informacje o konfliktach.Tabele konfliktów pasuje do schematu opublikowanych tabel: Ładowanie każdej tabela opublikowane, a następnie skrypt jest używany do tworzenia tabela konfliktów w baza danych publikacja.Tabele konfliktów są o nazwie w postaci dbo.MSmerge_conflict_<publikacji>_<artykułu>.

Każdy czas Agent migawki jest uruchamiany, następujących typów plików (z ich odpowiednimi rozszerzeniami) są tworzone dla każdego artykuł w bazie danych publikacja:

  • Schemat (.sch)

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

  • Wyzwalacze (.trg)

  • Dane tabela systemu (.sys)

  • Tabele konfliktów (.cft)

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

    Jeśli w publikacja nie używa żadnych filtrów sparametryzowana, migawka zawiera dane dla tabel opublikowanych w zestaw .bcp plików.Sparametryzowana filtrów (które są typowe dla publikacja seryjnej) używane w publikacja, migawka początkowa nie zawiera żadnych danych.Dane są udostępniane przy użyciu migawka dla subskrybenta partycji, która została omówiona w sekcji "Inicjowanie subskrypcji".

Inicjowanie subskrypcji

Każdej subskrypcja jest inicjowana, gdy Agent scalić subskrypcja kopiuje początkową migawkę do baza danych subskrypcja.Oprócz schemat i dane z replikowanych obiektów migawka zawiera system tabel, widoków, wyzwalaczy i procedur przechowywanych, które istnieją w bazie danych publikacja (jednej lub dwóch tabele systemowe dodatkowe są również kopiowane do baza danych subskrypcja).Aby uzyskać pełną listę tabele systemowe zobacz sekcję "System tabele utworzone w publikacji subskrypcji danych i" w tym temacie.Jeśli ustawienie jest ponownie inicjowane subskrypcja, wszystkie obiekty replikowane i obiekty systemu replikacja są zastępowane.

Jeśli żadna z tabel w baza danych publikacja filtry sparametryzowana, migawka tej samej publikacja zostanie skopiowany do każdego subskrybenta.Jeśli używane są jeden lub więcej filtrów sparametryzowana, sposób, w którym każdej subskrypcja jest inicjowana jest regulowane przez następującej logiki:

  • Jeśli lokalizacja migawka agenta scalania w wierszu polecenia:

    • Zastosowanie migawka z tej lokalizacji.
  • Else, jeśli migawka został wstępnie:

    • Pobrać lokalizacji migawka z MSmerge_dynamic_snapshots w baza danych publikacji i zastosować migawka z tej lokalizacji.
  • Else, jeśli publikacja umożliwia abonentów do inicjowania migawki:

    • Jeśli migawka został już wygenerowany dla innego subskrybenta z tej samej partycji, zastosowanie tej migawce do subskrybenta.

    • Else generować i stosować migawka subskrybenta.

  • Else zainicjować subskrybenta za pomocą instrukcji SELECT przeciwko tabel w publikacja.To podejście jest znacznie wolniejsze niż przy użyciu migawka dla partycji abonenta.

Jeśli transfer migawka zostanie przerwane w dowolnym momencie, automatycznie wznowi i nie wyśle wszystkie pliki, które już zostały całkowicie przeniesione.Jednostka dostawy dla agenta migawki jest pliku bcp dla każdego artykuł publikacja, więc pliki, które są dostarczane częściowo musi być całkowicie buforowe.Jednak wznawianie migawka mogą znacznie zmniejszyć ilość danych przesyłanych i zapewnienia migawka terminowe dostarczanie, nawet jeśli połączenie jest zawodne.Aby uzyskać więcej informacji na temat tworzenia migawek, zobacz Migawki publikacji korespondencji seryjnej z filtrami sparametryzowana.

Lokalizacja migawki

Lokalizacja migawka zależy od: Ścieżka określona dla domyślnego lub migawka alternatywnej lokalizacji; czy w publikacja używane ścieżka UNC lub FTP udziału folderu migawka; i czy sparametryzowana filtry używane w publikacja.W tych przykładach jest założyć, że lokalizacja folderu migawka jest: \\<MyComputer>\<MójFolder>\:

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

  • Publikacja używa UNC, nie są używane filtry sparametryzowana ścieżka jest: \\<MyComputer>\<MójFolder>\unc\<Wydawca><Publicationdb><publikacja>

  • publikacja używa UNC i wykorzystuje sparametryzowana filtry, lokalizację opiera się na ścieżka folderu migawka i parametrami wiersza filtrowanie kryteria dla publikacja.Na przykład, jeśli artykuł jest filtrowana z zastosowaniem HOST_NAME() funkcja i wartości HOST_NAME() dla partycji jest "saleslaptop", ścieżka do migawka dla tej partycji jest: \\<MyComputer>\<MójFolder>\unc\<Wydawca><Publicationdb><publikacja>\ SalesLaptop_12\, gdzie 12 jest Identyfikatorem używane wewnętrznie dla partycji.

System tabel utworzonych w publikacji i baz danych subskrypcji

Następujące tabele są tworzone w bazie publikacja i każdego baza danych subskrypcja.

Tabela

Opis

MSdynamicsnapshotjobs (Transact-SQL)

Zawiera informacje na migawka zadań dla publikacji z filtrami sparametryzowanej.

MSdynamicsnapshotviews (Transact-SQL)

Śledzi wszystkie tymczasowe migawkę widoki utworzone przez agenta migawka.Jest używana przez system oczyszczania widoków przypadek nienormalnego zamknięcia SQL Server agenta lub agenta migawki.

MSmerge_altsyncpartners (Transact-SQL)

Śledzi stowarzyszenia, którzy są dla bieżącej partnerów do synchronizacji Wydawca.

MSmerge_articlehistory (Transact-SQL)

Śledzi zmiany wprowadzane artykułów podczas sesja synchronizacji agenta scalić z jeden wiersz dla każdego artykuł, do którego wprowadzono zmiany.

MSmerge_conflicts_info (Transact-SQL)

Ścieżki konfliktów, które występują podczas synchronizacji subskrypcja do publikacja korespondencji seryjnej.

MSmerge_contents (Transact-SQL)

Zawiera jeden wiersz dla każdego wiersza modyfikacji bieżącej bazy danych, ponieważ została opublikowana.Ta tabela jest używany przez proces scalania do określenia wiersze, które zostały zmienione.

MSmerge_current_partition_mappings

Zawiera jeden wiersz dla każdej partycji, należącej do zmienionego danego wiersza.

MSmerge_dynamic_snapshots (Transact-SQL)

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

MSmerge_errorlineage (Transact-SQL)

Zawiera wiersze, który został usunięty przez subskrybenta, ale których delete nie są propagowane do Wydawca.

MSmerge_generation_partition_mappings (Transact-SQL)

Śledzi, czy dany generacji zawiera wszelkie zmiany, które są istotne dla danej partycji.

MSmerge_genhistory (Transact-SQL)

Zawiera jeden wiersz dla każdego pokolenia.Generowanie jest kolekcja zmian, które są dostarczane do Wydawca lub abonenta.Pokoleń są zamknięte każdego czas uruchamia scalić agenta; późniejsze zmiany w bazie danych są dodawane do jednej lub więcej Otwórz pokoleń.

MSmerge_history (Transact-SQL)

Zawiera szczegółowe opisy wyników poprzednich sesji zadanie agenta Scal wiersze, historia.

MSmerge_identity_range (Transact-SQL)

Śledzi numeryczne zakresów przypisanych do kolumny tożsamości dla subskrypcji do publikacji, dla których replikacja jest automatycznie zarządzania przypisaniami zakres.

MSmerge_metadataaction_request (Transact-SQL)

Zawiera jeden wiersz dla każdej akcja kompensacyjnych, który jest wymagany.Akcja kompensacyjnych jest używany do wycofać zmiany jednego węzła, jeśli nie można zmienić w innym węźle.

MSmerge_partition_groups (Transact-SQL)

Zawiera jeden wiersz dla każdego wstępnie obliczona partycja w danej bazy danych.

MSmerge_past_partition_mappings (Transact-SQL)

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

MSmerge_replinfo (Transact-SQL)

Zawiera jeden wiersz dla każdej subskrypcja.Ta tabela śledzi informacje wewnętrzne informacje wysyłane i odbierane pokoleń.

MSmerge_sessions (Transact-SQL)

Zawiera historia wiersze z wyników poprzednich agenta scalanie zadanie sesji.

MSmerge_settingshistory (Transact-SQL)

Zawiera historia 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, a usuwa 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 (języka 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 partycjonowanie tabela artykułów.

sysmergepublications (języka Transact-SQL)

Zawiera jeden wiersz dla każdej publikacja korespondencji seryjnej.

sysmergeschemaarticles (języka Transact-SQL)

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

sysmergeschemachange (języka Transact-SQL)

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

sysmergesubscriptions (języka Transact-SQL)

Zawiera jeden wiersz dla każdego subskrybenta.

sysmergesubsetfilters (języka Transact-SQL)

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

Ponadto MSsnapshotdeliveryprogress tabela jest tworzona w każdym baza danych subskrypcjioraz MSsubscription_properties tabela jest tworzona w każdym baza danych subskrypcji korzystający z subskrypcji ściąganej:

Tabela

Opis

MSsnapshotdeliveryprogress (Transact-SQL)

Ścieżki plików, które zostały pomyślnie dostarczone do subskrybenta po zastosowaniu migawka.Danych jest używany do wznowienia dostarczanie plików przypadek scalania agenta nie dostarczą wszystkich plików podczas sesja.

MSsubscription_properties (Transact-SQL)

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