Pojęcia dotyczące procedur przechowywanych system replikacja

W SQL Server, programowy dostęp do wszystkich funkcji użytkownika można konfigurować w topologia replikacja jest dostarczana przez system przechowywane procedury. Chociaż procedury przechowywane mogą być wykonywane oddzielnie przy użyciu SQL Server Management Studio lub narzędzie wiersza polecenia sqlcmd może być korzystne do pisania Transact-SQL pliki skryptów, które mogą być wykonywane w celu wykonania logicznej sekwencji zadań replikacja.

wykonywanie wykonywanie skryptów zadań replikacja zapewnia następujące korzyści:

  • Przechowuje trwałą kopię kroki, wymagane do rozmieszczenia programu topologia replikacja.

  • Używa jednego skryptu do konfigurowania wielu subskrybentów.

  • Szybko educates administratorów nowej bazy danych, włączając do oceny, zrozumieć, zmienić lub Rozwiązywanie problemów z kodu.

    Security noteSecurity Note:

    Skrypty mogą być źródłem luk w zabezpieczeniach, ich może wywołać funkcje systemowe bez wiedza użytkownika ani interwencji i może zawierać poświadczenia zabezpieczeń w postaci zwykłego tekstu.Przeglądanie skryptów do zagadnień związanych z zabezpieczeniami przed ich użyciem.

Tworzenie skryptów replikacja

Z punktu widzenia replikacji skrypt jest serią jednego lub więcej Transact-SQL instrukcje, gdzie każda instrukcja wykonywana jest replikacja procedura przechowywana. Skrypty są plikami tekstowymi, często z rozszerzeniem pliku .sql, które mogą być uruchamiane przy użyciu narzędzia sqlcmd.Po uruchomieniu pliku skryptu, narzędzie wykonuje instrukcje SQL, przechowywane w pliku.Podobnie, skrypt można zapisać jako obiekt kwerendy w SQL Server Management Studio Projekt.

Replikacja skryptów mogą być tworzone w następujący sposób:

  • Ręczne tworzenie skryptu.

  • Za pomocą funkcji Generowanie skryptu, które są dostarczane w kreatorach replikacja lub

  • SQL Server Management Studio.For more information, see Jak Skrypt replikacja Objects (SQL Server Management Studio).

  • Umożliwia programowo generowane są skrypty, aby utworzyć obiekt RMO replikacja Management Objects (RMOs).

Podczas ręcznego tworzenia replikacja skryptów, należy pamiętać o następujących zagadnień:

  • Transact-SQL skrypty mają jeden lub więcej instancji.Polecenie OBLICZ sygnalizuje zakończenie partia.Jeśli Transact-SQL skrypt nie ma żadnych poleceń GO, jest wykonywany jako jednej partia.

  • Podczas wykonywania replikacja wielu procedur przechowywanych w jednej partia po pierwszej procedury, wszystkie późniejsze procedury w partia musi być poprzedzony słowem kluczowym wykonać.

  • Wszystkich procedur przechowywanych we wsadzie należy skompilować, zanim zostanie zadanie partia wykonać.Jednak po partia został wcześniej skompilowany i został utworzony plan wykonania, błąd czas wykonania może lub nie mogą występować.

  • Podczas tworzenia skryptów w celu skonfigurowania replikacja, należy unikać przechowywania poświadczenia zabezpieczeń w pliku skryptu za pomocą uwierzytelnianie systemu Windows.Jeśli poświadczenia muszą być przechowywane w pliku skryptu, należy zabezpieczyć plik, aby uniemożliwić nieautoryzowany dostęp.

Przykładowy skrypt replikacja

Poniższy skrypt może być wykonywany ustawienia publikacji i dystrybucji na serwerze.

Ten skrypt można zapisać lokalnie jako instdistpub.sql dzięki czemu mogą być uruchamiane lub uruchom ponownie, gdy są potrzebne.

Poprzedni skrypt zawiera SQLCMD wykonywanie wykonywanie skryptów zmiennych, które są używane w wielu przykładach kodu replikacja w SQL Server Książki online. wykonywanie wykonywanie skryptów są definiowane przy użyciu $(MyVariable) Składnia. Wartości zmiennych mogą być przekazywane do skryptu w wierszu polecenia lub w SQL Server Management Studio. Aby uzyskać więcej informacji zobacz następną sekcję, w tym temacie, "skrypty replikacja Executing. „

Wykonywanie skryptów replikacja

Po utworzeniu skryptu replikacja można wykonać jedną z następujących metod:

Tworzenie pliku kwerendy SQL w programie SQL Server Management Studio

replikacja Transact-SQL można utworzyć plik skryptu w pliku kwerendy SQL w SQL Server Management Studio Projekt. Po napisano skrypt może się ustanowić połączenia z bazą danych dla tego pliku kwerendy, a skrypt, które mogą być uruchomione.Aby uzyskać więcej informacji na temat sposobów tworzenia Transact-SQL skrypty przy użyciu SQL Server Management Studio, zobacz Writing, Analyzing, and Editing Scripts with SQL Server Management Studio.

Aby użyć skryptu, który obejmuje zmienne, wykonywanie wykonywanie skryptów SQL Server Management Studio musi być uruchomiona SQLCMD tryb.W SQLCMD tryb Edytor kwerend akceptuje dodatkowe składnię unikatową dla SQLCMD, such as :setvar, które są wykorzystywane do wartości zmiennej. Aby uzyskać więcej informacji na temat SQLCMD mode, see Editing SQLCMD Scripts with Query Editor. W poniższym skrypcie :setvar można podać wartość dla $(DistPubServer) Zmienna.

:setvar DistPubServer N'MyPublisherAndDistributor';

-- Install the Distributor and the distribution database.
DECLARE @distributor AS sysname;
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @directory AS nvarchar(500);
DECLARE @publicationDB AS sysname;
-- Specify the Distributor name.
SET @distributor = $(DistPubServer);
-- Specify the distribution database.
SET @distributionDB = N'distribution';
-- Specify the Publisher name.
SET @publisher = $(DistPubServer);

--
-- Additional code goes here
--

Za pomocą sqlcmd narzędzie z wiersza polecenia

W poniższym przykładzie przedstawiono sposób użycia wiersza polecenia do wykonywania instdistpub.sql za pomocą pliku skryptu Narzędzie SQLCMD:

sqlcmd.exe -E -S sqlserverinstance -i C:\instdistpub.sql -o C:\output.log -v DistPubServer="N'MyDistributorAndPublisher'"

W tym przykładzie -E Przełącznik wskazuje, że uwierzytelnianie systemu Windows jest używany podczas łączenia się z SQL Server. W przypadku korzystania z uwierzytelnianie systemu Windows, nie ma potrzeby przechowywanie nazwy użytkownika i hasła w pliku skryptu.Nazwa i ścieżka pliku skryptu jest określany przez -i przełącznik i nazwę pliku wyjściowego jest określana przez -o Przełącznik (dane wyjściowe z SQL Server są zapisywane do tego pliku zamiast konsoli podczas użycia tego przełącznika). The sqlcmd utility enables you to pass wykonywanie skryptów variables to a Transact-SQL script at runtime using the -v switch. W tym przykładzie sqlcmd Zamienia wszystkie wystąpienie $(DistPubServer) w skrypcie z wartością N'MyDistributorAndPublisher' przed wykonaniem.

Uwaga

The -X switch disables wykonywanie skryptów variables.

Automatyzacja zadań w pliku partia

Za pomocą serii plików, zadania administracyjne dotyczące replikacja, zadania synchronizacji replikacja i inne zadania, można zautomatyzować w tym samym pliku wsadowego.Następujące partia używa pliku SQLCMD narzędzie, aby usunąć i ponownie utworzyć baza danych subskrypcja i dodać korespondencji seryjnej subskrypcja wciągana.Następnie plik wywoła agenta korespondencji seryjnej w celu zsynchronizowania nowej subskrypcja:

Typowe zadania replikacja wykonywanie wykonywanie skryptów

Poniżej przedstawiono inicjowanych przez niektóre z najczęściej wykonywanych zadań replikacja może być skrypty za pomocą procedur przechowywanych systemu:

  • Konfigurowanie publikowania i dystrybucji

  • Modyfikowanie właściwości Wydawca i dystrybutor

  • Wyłączanie publikowania i dystrybucji

  • Tworzenie publikacji i definiowanie artykułów

  • Usuwanie publikacji i artykułów

  • Tworzenie subskrypcja wciągana

  • Modyfikowanie subskrypcja wciągana

  • Usuwanie subskrypcja wciągana

  • Tworzenie subskrypcja wypychana

  • Modyfikowanie wypychanie subskrypcja

  • Usuwanie subskrypcja wypychana

  • Synchronizowanie subskrypcja ściąganej