Koncepcje programowania replikacyjnego

Dotyczy:SQL ServerAzure SQL Managed Instance

Przed opracowaniem aplikacji wykorzystującej funkcje replikacji, należy postępować zgodnie z ogólnymi krokami planowania:

  1. Zdefiniuj swoją topologię replikacji.

  2. Zdefiniuj funkcjonalność aplikacji.

  3. Planuj bezpieczeństwo.

  4. Wybierz środowisko rozwojowe.

  5. Wybierz odpowiedni interfejs programowania replikacyjnego.

Reszta tego artykułu szczegółowo opisuje te kroki. Aby lepiej zobrazować proces planowania, załączono przykład.

Definiowanie topologii replikacji

Pierwszym krokiem w programowaniu replikacji jest zdefiniowanie topologii replikacji dla Twojej aplikacji. Jeśli piszesz aplikację korzystającą z istniejącej topologii replikacji, na przykład aplikację kliencką uzyskującą dostęp do danych od istniejącego abonenta, przejdź do kolejnego kroku.

Note

W niektórych przypadkach wdrożenie topologii replikacyjnej jest jedynym celem aplikacji.

Topologia replikacji, którą definiujesz, zależy od wielu czynników, w tym od następujących:

  • Czy replikowane dane muszą być aktualizowane i przez kogo.

  • Twoje potrzeby dotyczące dystrybucji danych pod względem spójności, autonomii i opóźnień.

  • Środowisko replikacji, obejmujące użytkowników biznesowych, infrastrukturę techniczną, sieć i bezpieczeństwo oraz charakterystyki danych.

  • Rodzaje replikacji i opcje replikacji.

  • Topologie replikacji i ich dopasowanie do typów replikacji.

Jeśli dopiero zaczynasz przywiązywać się do replikacji Microsoft SQL Server, zobacz Rodzaje replikacji.

Definiowanie funkcjonalności aplikacji

Po zdefiniowaniu topologii replikacji zdecyduj o funkcjach, które oferuje twoja aplikacja. Funkcje te mogą obejmować skrypt synchronizujący subskrypcję aplikacji z interfejsem użytkownika w celu konfiguracji replikacji. Replikacja obsługuje następujące ogólne zadania programistyczne:

  • Ustawiam replikację.

  • Synchronizacja subskrybentów.

  • Utrzymanie topologii replikacyjnej.

  • Monitorowanie topologii replikacyjnej.

  • Rozwiązywanie problemów z replikacją.

Często rozszerza się aplikację poprzez łączenie funkcji replikacji z innymi funkcjami oferowanymi przez SQL Server. Poniższa tabela przedstawia rozszerzone funkcje, które możesz zaoferować w swojej aplikacji replikacyjnej.

Functionality Example
Administracja serwera za pomocą SQL Server Management Objects (SMO) Aplikacja umożliwiająca administratorowi dołączanie i konfigurowanie bazy danych jako Publisher w topologii replikacji.
Dostęp do danych za pomocą ADO.NET Aplikacja, która umożliwia użytkownikom programowy dostęp do i zmianę replikowanych danych sprzedaży w lokalnej bazie danych subskrybentów podczas trybu offline, a następnie łączenie i synchronizację subskrypcji pull poprzez zaznaczenie przycisku.

Planowanie bezpieczeństwa

Bezpieczeństwo jest ważne w każdej aplikacji i powinieneś zaplanować bezpieczeństwo przed napisaniem jakiegokolwiek kodu. Bezpieczeństwo aplikacji można podzielić na trzy główne części: zabezpieczenie bazy danych, zabezpieczenie replikacji oraz pisanie bezpiecznego kodu.

Poniższe artykuły zawierają informacje na temat bezpieczeństwa:

Wybór środowiska rozwojowego

Tworząc aplikację replikacyjną, rozważ te trzy podstawowe środowiska programistyczne. Każde środowisko deweloperskie ma dostęp do tych samych funkcji replikacji, z pewnymi wyjątkami. Możesz tworzyć aplikacje replikacyjne w każdym z następujących środowisk.

  • Kod zarządzany

    Obiektowe środowisko programistyczne, które wykorzystuje zalety programowania .NET Framework oraz środowiska uruchomieniowego .NET Common Language (CLR). Zarządzany kod jest zalecanym środowiskiem programistycznym zarówno dla tworzenia .NET, jak i aplikacji SQL Server. Zarządzane interfejsy replikacji pozwalają programować administrację replikacji w sposób obiektowy, bez konieczności znajomości Transact-SQL. Zapewnia także pewne funkcje callbackowe podczas uruchamiania agentów replikacji, które nie są dostępne w skryptach. Kod zarządzany to najlepsze środowisko do tworzenia wielokrotnego użytku komponentów i aplikacji interfejsu użytkownika.

  • Scripting

    Proste aplikacje wykonujące serię poleceń jako procedury przechowywane w systemie replikacji w Transact-SQL skryptach lub polecenia w plikach wsadowych. Chociaż możesz wykonywać skrypty w środowisku zarządzanym, korzystając z usług SQL Server w procesie zarządzanego dostawcy, tę samą funkcjonalność uzyskasz, korzystając z interfejsów zarządzanej replikacji, które również oferują funkcje callback. Skryptowanie to najlepsze środowisko do wykonywania zadań uruchamianych tylko kilka razy i gdzie nie są wymagane funkcje callback, takie jak instalacja serwera replikacyjnego.

  • Kod natywny

    Obiektowe środowisko programistyczne, które wykorzystuje bezpośredni dostęp do systemu lub obiektów COM, tak że kod nie jest zarządzany przez CLR. Natywne interfejsy replikacji kodu są wycofane lub wycofane. Więcej informacji można znaleźć w artykule Wycofane funkcje w replikacji SQL Server lub Replikacja wsteczna.

Wybierz odpowiedni interfejs programowania replikacyjnego

Ostatnim krokiem planowania jest wybór odpowiedniego interfejsu programowania replikacyjnego, który zaimplementuje pożądaną funkcjonalność replikacji dla wybranego środowiska programistycznego. Poniższa tabela przedstawia dostępne interfejsy programowania replikacyjnego.

Interface Environment Zastosowania
Pojęcia dotyczące obiektów zarządzania replikacją Kod zarządzany Administracja, monitorowanie i synchronizacja.
Microsoft.SqlServer.Replication Kod zarządzany Synchronizacja.
Microsoft.SqlServer.Replication.BusinessLogicSupport Kod zarządzany Tworzenie obsługiwaczy logiki biznesowej do integracji niestandardowej logiki z procesem synchronizacji fuzji.
Procedury przechowywane replikacji (Transact-SQL) Scripting Administracja i monitoring.
Pojęcia dotyczące plików wykonywalnych agenta replikacji Scripting Synchronizacja.

Example

W Adventure Works dane muszą zostać opublikowane dla 200 przedstawicieli handlowych na całym świecie. Przedstawiciele handlowi często podróżują i muszą korzystać z laptopów lub osobistych asystentów cyfrowych (PDA), aby zmieniać dane klientów i dodawać nowe zamówienia. Przedstawiciele handlowi muszą zsynchronizować zmiany z Publisher podczas podłączania laptopa do sieci.

W tym wniosku kroki planistyczne mogą wyglądać następująco:

  1. Topologia replikacji dla tego zastosowania już istnieje. Jednak musisz utworzyć nową subskrypcję pull u klienta. Używaj filtrów parametryzowanych w publikacji, aby odtworzyć unikalny zestaw danych dla każdego przedstawiciela handlowego.

  2. Oprócz typowego dostępu do danych wymaganego w aplikacji sprzedażowej, aplikacja ta powinna umożliwić sprzedawcy synchronizację subskrypcji pull na żądanie poprzez kliknięcie przycisku. Ponieważ przedstawiciel handlowy instaluje i uruchamia aplikację, musi również umieć skonfigurować subskrypcję i zastosować początkowy snapshot do klienta. Opcjonalnie aplikacja korzysta z infrastruktury dostarczonej przez Windows do wykrywania łączności bezprzewodowej, aby automatycznie synchronizować subskrypcję po wykryciu połączenia.

  3. Stosuj się do wszystkich wytycznych bezpieczeństwa dotyczących replikacji, w tym korzystania z uwierzytelniania Windows oraz wirtualnej sieci prywatnej (VPN) podczas łączenia z Publisher. Jeśli implementujesz synchronizację sieci, użyj połączenia Transport Layer Security (TLS), wcześniej znanego jako Secure Sockets Layer (SSL). Więcej informacji można znaleźć w sekcji Konfiguruj synchronizację sieci.

  4. Aby skorzystać z funkcji frameworka .NET, rozwijaj aplikację za pomocą zarządzanego języka kodu.

  5. Na podstawie tych wymagań interfejs zarządzany Obiektami Zarządzania Replikacją (RMO) może zapewnić wszystkie niezbędne funkcje replikacji dla tej aplikacji.

Możesz pobrać przykładową aplikację AdventureWorks, która implementuje ten przykładowy scenariusz z SQL Server.