Publikowanie danych i obiektów bazy danych

Podczas tworzenia publikacja, należy wybrać tabele i inne obiekty bazy danych, które chcesz opublikować.Można publikować następujące obiekty bazy danych przy użyciu replikacja.

Obiekt bazy danych

Replikacja migawki i replikacja transakcyjna

Scalania replikacja

tabele

X

X

Tabele podzielonym na partycje

X

X

Przechowywane procedury — definicja (Transact-SQL i CLR)

X

X

Przechowywane procedury — wykonanie (Transact-SQL i CLR)

X

nie

Widoki

X

X

Widoki indeksowane

X

X

Widoki indeksowane jako tabele

X

nie

Typów zdefiniowanych przez użytkownika (CLR)

X

X

Funkcje zdefiniowane przez użytkownika (Transact-SQL i CLR)

X

X

Alias typów danych

X

X

Pełny tekst indeksów

X

X

Obiekty schematu (ograniczenia, indeksy, użytkownik DML wyzwalaczy, właściwości rozszerzone i sortowanie)

X

X

Tworzenie publikacji

Aby utworzyć publikacja, należy podać następujące informacje:

  • Dystrybutor.

  • Lokalizacja plików migawka.

  • baza danych publikacja.

  • Typ publikacja utworzyć (migawka, transakcyjne, transakcyjne aktualizowalna subskrypcji lub korespondencji seryjnej).

  • Danych i obiektów bazy danych (art.) w publikacja.

  • Filtry statyczne wiersza i kolumna filtry dla wszystkich typów publikacji i filtry parametrami wiersza i filtry łączyć publikacji seryjnej.

  • Harmonogram migawek agenta.

  • Konta, na których działają następujące czynniki: Agent migawki dla wszystkich publikacji; Agent odczytywania dziennika dla wszystkich publikacji transakcyjnych; Agent czytnik kolejki transakcyjnej publikacji, które umożliwiają aktualizowanie subskrypcji.

  • Nazwę i opis dla publikacja.

Tworzenie publikacji i artykułów

Aby zmodyfikować publikacje i artykuły

Aby usunąć publikacje i artykuły

Ostrzeżenie

Usuwanie artykuł lub publikacja nie usuwa obiektów z subskrybenta.

Publikowanie tabel

Najczęściej opublikowanych obiekt jest tabela.Poniższe łącza udostępniają dodatkowe informacje o obszarach związanych z tabel publikowania:

Podczas publikowania tabela dla replikacja, można określić obiekty schematu, które powinny być skopiowane do subskrybenta, takich jak zadeklarowane więzów integralność (klucz podstawowy ograniczenia ograniczenia odwołania ograniczeń unique), indeksy i wyzwalacze LŚD użytkownika (nie można zreplikować Wyzwalacze DDL), rozszerzone właściwości i sortowanie.Właściwości rozszerzone są replikowane tylko w synchronizacja początkowa między Wydawca i subskrybenta.Jeśli dodać lub zmodyfikować właściwość rozszerzone po synchronizacja początkowa, zmiana nie jest replikowana.

Aby określić opcje schematu

Podzielonym na partycje tabel i indeksów

Replikacja obsługuje publikowanie tabel podzielonym na partycje i indeksy.Poziom wsparcia zależy od typu używanego replikacja i opcji, które określisz publikacja i artykuły związane z partycjami tabel.Aby uzyskać więcej informacji, zobacz Replikowanie podzielonym na partycje tabel i indeksów.

Procedury przechowywane publikowania

Wszystkie rodzaje replikacja umożliwiają replikować definicje procedura składowana: CREATE PROCEDURE jest kopiowany do każdego subskrybenta.przypadek wspólnego języka z procedur przechowywanych runtime (CLR), skojarzony wirtualny plik dziennika ten również zostanie skopiowany.Procedury zmiany są replikowane do subskrybentów; nie są skojarzone zestawy zmian.

Oprócz replikowanie definicji procedurę przechowywaną replikacja transakcyjna pozwala replikować wykonanie procedur przechowywanych.Jest to przydatne przy replikowaniu wyniki zorientowane na utrzymanie procedur przechowywanych, które wpływają na duże ilości danych.Aby uzyskać więcej informacji, zobacz Publikowanie wykonanie procedury przechowywanej w replikacji transakcyjnej.

Publikowania widoków

Wszystkie rodzaje replikacja pozwalają replikować widoki.Widok (i towarzyszących indeksu, jeśli jest to indeksowany widok) mogą być kopiowane do subskrybenta, ale również musi być replikowany tabela bazowa.

Widoki indeksowane replikacja transakcyjna umożliwia także replikować jako tabeli zamiast widoku, eliminując konieczność także replikować tabela bazowa indeksowany widok.Aby to zrobić, należy określić jeden z "logbased indeksowany widok" Opcje dla @type parametr sp_addarticle (języka Transact-SQL).Aby uzyskać więcej informacji o korzystaniu z sp_addarticle, zobacz Jak Definiowanie artykuł (Programowanie replikacji Transact-SQL).

Publikowanie funkcji zdefiniowanej przez użytkownika

Instrukcje funkcji Tworzenie funkcji CLR i Transact-SQL funkcje są kopiowane do każdej subskrybenta.przypadek funkcji CLR wirtualny plik dziennika skojarzonego również zostanie skopiowany.Zmiany funkcji są replikowane do subskrybentów; nie są skojarzone zestawy zmian.

Publikowanie typy zdefiniowane przez użytkownika i dane aliasu

Typów zdefiniowanych przez użytkownika lub alias typów danych kolumn są replikowane do subskrybentów jak innych kolumn.Tworzenie typuwykonaniu instrukcja dla każdego typu replikowanych subskrybent przed utworzeniem tabela.przypadek typów zdefiniowanych przez użytkownika z wirtualny plik dziennika skojarzonego również zostanie skopiowany poszczególnym subskrybentom.Zmiany typów zdefiniowanych przez użytkownika i alias typy danych nie są replikowane do subskrybentów.

Jeśli typem jest zdefiniowana w bazie danych, ale go nie odwołuje się do kolumn podczas tworzenia publikacja, typ nie jest kopiowane do subskrybentów.Jeśli później utworzyć kolumna typu bazy danych i chcesz replikować go, najpierw należy ręcznie skopiować typu (i skojarzone wirtualny plik dziennika dla typ zdefiniowany przez użytkownika) poszczególnym subskrybentom.

Publikowanie indeksy pełnego tekstu

instrukcja CREATE INDEX PEŁNOTEKSTOWY jest kopiowany do każdego subskrybenta i indeksu pełnotekstowego jest tworzony przez subskrybenta.Zmiany wprowadzone przy użyciu ALTER indeks PEŁNOTEKSTOWY indeksów pełny tekst nie są replikowane.

Schemat zmian do opublikowanych obiektów

Replikacja obsługuje szerokiego zakres zmian schematu do opublikowanych obiektów.Po dokonaniu zmiany schematu na odpowiednich opublikowanych obiektów w SQL Server Wydawca, że zmiana została rozpropagowana domyślnie wszystkim SQL Server subskrybenci:

  • ALTER TABLE

  • ZMIANA WIDOKU

  • ZMIENIANIE PROCEDURY

  • ZMIENIANIE FUNKCJI

  • ZMIENIANIE WYZWALACZA

Aby uzyskać więcej informacji, zobacz Wprowadzanie zmian schematu na publikację baz danych.

Zagadnienia dotyczące publikowania

Podczas publikowania obiektów bazy danych, należy pamiętać o następujących problemów:

  • Baza danych jest dostępny dla użytkowników podczas tworzenia publikacja i wstępnego migawka, ale zaleca się tworzenie publikacja godzinach niższe aktywność wydawcy.

  • Po utworzeniu publikacja w nim, nie można zmienić nazwy bazy danych.Aby zmienić jego nazwę, należy najpierw usunąć replikacja z bazy danych.Aby uzyskać więcej informacji, zobacz Usuwanie replikacji.

  • W przypadku publikowania obiektu bazy danych, która zależy od jednego lub więcej innych obiektów bazy danych, należy opublikować wszystkie obiekty.Na przykład po opublikowaniu widok, który zależy od tabela należy również opublikować tabela.

    Ostrzeżenie

    Dodać artykuł do publikacja korespondencji seryjnej i istniejącego artykułu zależy od nowego artykułu, należy określić kolejność przetwarzania dla artykułów zarówno przy użyciu @ processing_order parametr sp_addmergearticle i sp_changemergearticle.Rozważmy następujący scenariusz: publikować tabela, ale nie publikowanie funkcja, która odwołuje się do tabela.Jeśli funkcja nie jest publikowany, tabela nie można utworzyć przez subskrybenta.Podczas dodawania funkcja do publikacja: Określ wartość 1 dla @ processing_order parametr sp_addmergearticle; i określ wartość 2 dla @ processing_order parametr sp_changemergearticle, określając nazwę tabela dla parametru @ artykuł.Zapewnia to kolejność przetwarzania Utwórz funkcję subskrybent przed tabela , zależy od niej.Różne numery można użyć dla każdego artykuł, jak liczba funkcja jest mniejsza od liczby dla tabela.

  • Publikacja nazwy nie mogą zawierać następujących znaków: % * [ ] | : " ?\ / < >.

Ograniczenia dotyczące publikowania obiektów

  • Maksymalna liczba artykułów i kolumny, które mogą być publikowane różni się według typu publikacja.Aby uzyskać więcej informacji zobacz "Obiekty replikacji" sekcja Specyfikacje maksymalnej pojemności w programie SQL Server.

  • Procedur przechowywanych, widoki, wyzwalaczy i funkcje zdefiniowane przez użytkownika są definiowane zgodnie z szyfrowania nie mogą być publikowane jako część SQL Server replikacja.

  • Kolekcje schematu XML mogą być replikowane, ale zmiany nie są replikowane w po migawka początkowa.

  • Tabele opublikowane dla replikacja transakcyjna musi mieć klucz podstawowy.Jeśli tabela znajduje się w replikacja transakcyjna publikacja, nie można wyłączyć żadnych indeksów, które są skojarzone z kolumny klucz podstawowego.Indeksy te są wymagane przez replikacja.Aby wyłączyć indeksu, należy najpierw usunąć tabela z publikacja.

  • Powiązane wartości domyślnych, utworzonych za pomocą sp_bindefault (języka Transact-SQL) nie są replikowane (domyślne związane są zaniechana domyślne ustawienia utworzone za pomocą słowa kluczowego domyślne ALTER TABLE lub CREATE TABLE).

Schematy i własności obiektu

Replikacja ma następujące domyślne zachowanie w Kreatorze nowej publikacji w odniesieniu do schematów i własności obiektu:

  • Artykuły w publikacji seryjnej zgodności, poziom 90 lub wyższym, migawka publikacji i publikacjach transakcyjne: Domyślnie właścicielem obiektu subskrybent jest taka sama jak właściciel odpowiedni obiekt w Wydawca.Subskrybent nie istnieją schematy, które są właścicielami obiektów, są one tworzone automatycznie.

  • Artykuły w publikacjach z poziom zgodności niższa niż 90: Domyślnie właścicielem jest puste i jest określona jako dbo podczas tworzenia obiektu na subskrybenta.

  • Artykuły w publikacjach Oracle: Domyślnie właścicielem jest określony jako dbo.

  • Artykuły w publikacji używających migawek trybie znaku (które są używane do nie-SQL Server abonentów i SQL Server Compact 3.5 z dodatkiem SP1 abonentów): Domyślnie właściciel pozostaje puste.Domyślnie właścicielem skojarzony konto używane przez dystrybucji agenta lub przedstawiciela scalić połączyć subskrybenta właściciel.

Właściciel obiektu może zostać zmieniona przez Właściwości artykułu - <artykułu> okno dialogowe i poprzez następujące procedury przechowywane: sp_addarticle, sp_addmergearticle, sp_changearticle, i sp_changemergearticle.Aby uzyskać więcej informacji, zobacz Jak Wyświetlanie i modyfikowanie publikacji i właściwości artykułu (SQL Server Management Studio), Jak Definiowanie artykuł (Programowanie replikacji Transact-SQL), i Jak Wyświetlanie i modyfikowanie właściwości artykułu (Programowanie replikacji Transact-SQL).

Publikowanie danych abonentów, na których działają poprzednie wersje programu SQL Server

  • Jeśli publikujesz do subskrybenta z poprzednią wersją SQL Server, które są ograniczone do funkcji wersja, zarówno pod względem funkcji replikacja i funkcje produktu jako całości.Na przykład nie będzie można publikować typów danych zdefiniowanych przez użytkownika lub funkcji CLR subskrybentów z systemem SQL Server 2000.

  • Poziom zgodności, który określa, jakie funkcje mogą być używane w publikacja i umożliwia obsługę abonentów, na których działają poprzednie wersje publikacja korespondencji seryjnej za pomocą SQL Server.

Aby uzyskać więcej informacji, zobacz W topologii replikacji przy użyciu wielu wersji programu SQL Server.

Publikowanie tabel w więcej niż jednej publikacji

Replikacja obsługuje publikowania artykułów w wielu publikacjach (w tym ponowne publikowanie danych), z następującymi ograniczeniami:

  • Jeśli artykuł jest opublikowany w publikacja transakcyjnych i publikacja korespondencji seryjnej, zapewnić, że @published_in_tran_pub właściwość jest zestaw na wartość TRUE dla artykułu korespondencji seryjnej.Aby uzyskać więcej informacji dotyczących ustawiania właściwości, zobacz Jak Wyświetlanie i modyfikowanie publikacji i właściwości artykułu (SQL Server Management Studio) i Jak Wyświetlanie i modyfikowanie właściwości artykułu (Programowanie replikacji Transact-SQL).

    Należy również zestaw @published_in_tran_pub właściwość, jeśli artykuł jest częścią subskrypcja transakcyjnych i uwzględnione w publikacja korespondencji seryjnej.Należy to zrobić, należy pamiętać, że domyślnie replikacja transakcyjna oczekuje tabel subskrybent powinien być traktowany jako tylko do odczytu; Jeśli replikacja scalająca zmian danych do tabela w transakcyjnych subskrypcja, innych niż zbieżności danych mogą wystąpić.Aby tego uniknąć, zaleca się, aby określić takie tabela jako tylko do pobrania w publikacja korespondencji seryjnej.Uniemożliwia to przesyłanie zmian danych do tabela seryjnej subskrybenta.Aby uzyskać więcej informacji, zobacz Optymalizacja wydajności replikacji scalania z artykułami tylko do pobrania.

  • Nie można opublikować artykuł w publikacja seryjnej i publikacja transakcyjnych w kolejce subskrypcje aktualizacji.

  • Artykuły zawarte w publikacji transakcyjnych, które obsługują subskrypcji aktualizacji nie można ponownie opublikować.

  • Artykuł jest publikowany w więcej niż jednej kolejce transakcyjnych publikacja, który obsługuje aktualizowanie subskrypcje, następujące właściwości musi mieć taką samą wartość artykułu we wszystkich publikacja:

    Właściwość

    Parametr sp_addarticle

    Zarządzanie tożsamościami zakres

    @ auto_identity_range (przestarzałe) i @ identityrangemangementoption

    Tożsamość wydawcyzakres

    @ pub_identity_range

    zakres tożsamości

    @ identity_range

    Próg zakres tożsamości

    @ próg

    Aby uzyskać więcej informacji na temat tych parametrów, zobacz sp_addarticle (języka Transact-SQL).

  • Artykuł jest publikowany w więcej niż jednej publikacja korespondencji seryjnej, następujące właściwości musi mieć taką samą wartość artykułu we wszystkich publikacja:

    Właściwość

    Parametr sp_addmergearticle

    Kolumny śledzenia

    @ column_tracking

    Opcje schematu

    @ schema_option

    Filtrowanie kolumn

    @ vertical_partition

    Opcje wysyłania subskrybenta

    @ subscriber_upload_options

    Usuń warunkowe śledzenia

    @ delete_tracking

    Błąd rekompensaty

    @ compensate_for_errors

    Zarządzanie tożsamościami zakres

    @ auto_identity_range (przestarzałe) i @ identityrangemangementoption

    Tożsamość wydawcyzakres

    @ pub_identity_range

    zakres tożsamości

    @ identity_range

    Próg zakres tożsamości

    @ próg

    Opcje partycji

    @ partition_options

    Kolumna blob przesyłania strumieniowego

    @ stream_blob_columns

    Typ filtru

    @ filter_type(parametr sp_addmergefilter)

    Aby uzyskać więcej informacji na temat tych parametrów, zobacz sp_addmergearticle (języka Transact-SQL) i sp_addmergefilter (języka Transact-SQL).

  • Obsługa replikacji transakcyjnej i niefiltrowanym replikacja scalająca publikowania tabela w wielu publikacjach i następnie subskrypcja w jednej tabela w baza danych subskrypcja (zwany często rolki górę scenariusz).Rolki w górę jest często używany do agregowania podzbiory danych z wielu lokalizacji w jednej tabela w centralnej subskrybenta.Filtrowane publikacjach nie obsługują centralny scenariusz subskrybenta.replikacja scalająca rolki w górę jest zazwyczaj realizowane poprzez pojedynczej publikacja z filtrami parametrami wiersza.Aby uzyskać więcej informacji, zobacz Filtry parametrami wiersza.