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
Microsoft SQL Server Management Studio: Jak Utwórz publikację i artykułów (SQL Server Management Studio)
Programowanie języka Transact-SQL replikacji: Jak Tworzenie publikacji (Programowanie replikacji Transact-SQL) i Jak Definiowanie artykuł (Programowanie replikacji Transact-SQL)
Replikacja programowania Zarządzanie obiektami (RMO): Jak Tworzenie publikacji (Programowanie RMO) i Jak Definiowanie artykuł (Programowanie RMO)
Aby zmodyfikować publikacje i artykuły
SQL Server Management Studio: Jak Wyświetlanie i modyfikowanie publikacji i właściwości artykułu (SQL Server Management Studio)
Programowanie języka Transact-SQL replikacji: Jak Wyświetlanie i modyfikowanie właściwości publikacji (Programowanie replikacji Transact-SQL) i Jak Wyświetlanie i modyfikowanie właściwości artykułu (Programowanie replikacji Transact-SQL)
Replikacja programowania Zarządzanie obiektami (RMO): Jak Wyświetlanie i modyfikowanie właściwości publikacji (Programowanie RMO) i Jak Wyświetlanie i modyfikowanie właściwości artykułu (Programowanie RMO)
Aby usunąć publikacje i artykuły
SQL Server Management Studio: Jak Usuwanie publikacji (SQL Server Management Studio)
Programowanie języka Transact-SQL replikacji: Jak Usuwanie publikacji (Programowanie replikacji Transact-SQL) i Jak Usuwanie artykułu (Programowanie replikacji Transact-SQL)
Replikacja programowania Zarządzanie obiektami (RMO): Jak Usuwanie artykułu (Programowanie RMO)
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
SQL Server Management Studio: Jak Określ opcje schematu (SQL Server Management Studio)
Replikacja Transact-SQL programowania: Jak Określ opcje schematu (Programowanie replikacji Transact-SQL)
Programowanie RMO: SchemaOption
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.