Konfiguruj synchronizację sieci

Dotyczy:programu SQL Server

Opcja synchronizacji sieci Web dla SQL Server Merge Replication umożliwia replikację danych za pomocą protokołu HTTPS przez Internet. Aby korzystać z synchronizacji sieci, najpierw wykonaj następujące kroki konfiguracyjne:

  1. Utwórz nowe konta domeny i skonfiguruj logowania do SQL Server.

  2. Skonfiguruj komputer z uruchomionymi usługami Microsoft Internet Information Services (IIS), aby synchronizować subskrypcje.

  3. Skonfiguruj publikację scalaną, aby zezwolić na synchronizację sieci Web.

  4. Skonfiguruj co najmniej jedną subskrypcję do korzystania z synchronizacji sieci Web.

Notatka

Jeśli planujesz replikować duże ilości danych lub używać dużych typów danych, takich jak varchar(max), przeczytaj sekcję "Replikowanie dużych ilości danych" w tym temacie.

Aby skutecznie skonfigurować synchronizację sieci, musisz zdecydować, jak skonfigurować zabezpieczenia tak, aby spełniały Twoje wymagania i polityki. Podejmij te decyzje i utwórz niezbędne konta, zanim spróbujesz skonfigurować IIS, publikację i subskrypcje.

Poniższe procedury opisują uproszczoną konfigurację bezpieczeństwa wykorzystującą konta lokalne. Ta uproszczona konfiguracja jest odpowiednia dla instalacji, gdzie zarówno IIS, jak i SQL Server Publisher i dystrybutor działają na tym samym komputerze, choć znacznie częściej (i zalecane) jest użycie topologii wieloserwerowej w instalacji produkcyjnej. Konta domeny można zastąpić kontami lokalnymi w procedurach.

Tworzenie nowych kont i mapowanie logowania do SQL Server

SQL Server Replication Listener (replisapi.dll) łączy się z Publisher, podszywając się pod konto, które przypisujesz do puli aplikacji powiązanej ze stroną replikacyjną.

Konto, którego używasz dla SQL Server Replication Listener, wymaga uprawnień opisanych w Merge Agent Security, w sekcji "Connect to the Publisher or Distributor." Podsumowując, konto musi:

  • Zostań członkiem Listy Dostępu do Publikacji (PAL).

  • Przypisz do logowania skojarzonego z użytkownikiem w bazie danych publikacji.

  • Przypisz do identyfikatora użytkownika skojarzonego z użytkownikiem w bazie danych dystrybucji.

  • Mieć uprawnienia do odczytu udziału migawek.

Jeśli to pierwszy raz, gdy używasz SQL Server Replication, musisz też utworzyć konta i logowania dla agentów replikacji. Więcej informacji można znaleźć w sekcjach "Konfigurowanie publikacji" oraz "Konfiguracja subskrypcji" w tym artykule.

Zanim skonfigurujesz synchronizację sieci, przeczytaj sekcję "Najlepsze praktyki bezpieczeństwa dla synchronizacji sieci" w tym artykule. Aby uzyskać więcej informacji na temat zabezpieczeń synchronizacji sieci Web, zobacz Security Architecture for Web Synchronization.

Konfigurowanie komputera z uruchomionymi usługami IIS

Synchronizacja sieci Web wymaga zainstalowania i skonfigurowania usług IIS. Potrzebujesz adresu URL do strony replikacyjnej, zanim możesz skonfigurować publikację do synchronizacji webowej.

Synchronizacja sieci Web jest obsługiwana w usługach IIS, począwszy od wersji 5.0. Kreator synchronizacji sieci Configure Web nie jest obsługiwany w wersji IIS 7.0. Począwszy od SQL Server 2012, aby korzystać z komponentu Web sync na serwerze IIS, instaluj SQL Server z replikacją. Może to być bezpłatna wersja programu SQL Server Express.

Protokół TLS jest wymagany do synchronizacji sieci Web. Potrzebujesz certyfikatu bezpieczeństwa wydanego przez organ certyfikacyjny. Tylko do celów testowych można użyć certyfikatu zabezpieczeń wystawionego samodzielnie.

Aby skonfigurować usługi IIS na potrzeby synchronizacji sieci Web

Tworzenie ogrodu internetowego

Odbiornik replikacji programu SQL Server obsługuje dwie współbieżne operacje synchronizacji na wątek. Przekroczenie tego limitu może spowodować przestanie odpowiadania przez Słuchacz Replikacji. Własność puli aplikacyjnych Maximum Worker Processes określa liczbę wątków przypisanych do replisapi.dll. Domyślnie ta właściwość jest ustawiona na 1.

Można obsługiwać większą liczbę współbieżnych operacji synchronizacji na procesor, zwiększając wartość właściwości Maksymalny proces roboczy. Skalowanie w górę przez zwiększenie liczby procesów roboczych na procesor jest nazywane tworzeniem "ogrodu internetowego".

Funkcja „web gardening” umożliwia jednoczesną synchronizację więcej niż dwóm Subskrybentom. Zwiększa także wykorzystanie CPU o replisapi.dll, co może negatywnie wpływać na ogólną wydajność serwera. Weź pod uwagę te kwestie, wybierając wartość parametru Maksymalna liczba procesów roboczych.

Aby zwiększyć maksymalną liczbę procesów roboczych w usługach IIS 7

  1. W menedżerze Internet Information Services (IIS)rozwiń węzeł serwera lokalnego, a następnie kliknij na węzeł puli aplikacji.

  2. Wybierz pulę aplikacji skojarzoną z witryną synchronizacji sieci Web, a następnie kliknij Ustawienia zaawansowane w okienku Akcje.

  3. W oknie dialogowym Ustawienia zaawansowane w obszarze Model przetwarzania kliknij wiersz oznaczony etykietą Maksymalna liczba procesów roboczych. Zmień wartość właściwości, a następnie kliknij przycisk OK.

Konfiguracja publikacji

Aby użyć synchronizacji przez sieć Web, utwórz publikację w taki sam sposób, jak tworzysz standardową publikację topologii scalania. Aby uzyskać więcej informacji, zobacz Publikowanie danych i obiektów bazy danych.

Po utworzeniu publikacji włącz opcję synchronizacji sieci Web za pomocą jednej z następujących metod: SQL Server Management Studio, Transact-SQL lub Replication Management Objects (RMO). Aby umożliwić synchronizację sieci, musisz podać adres serwera WWW dla połączeń subskrybentów.

Jeśli po raz pierwszy korzystasz z Publisher, musisz także skonfigurować Distributora i udostępnianie snapshotów. Agent scalania dla każdego subskrybenta musi mieć uprawnienia do odczytu w udziale migawek. Aby uzyskać więcej informacji, zobacz Konfiguracja dystrybucji oraz Zabezpiecz folder migawek.

gen to zarezerwowane słowo w plikach XML Websync. Nie próbuj publikować tabel zawierających kolumny o nazwie gen.

Konfiguracja subskrypcji

Po włączeniu publikacji i skonfigurowaniu usług IIS utwórz subskrypcję ściągania i określ, że subskrypcja ściągania powinna być synchronizowana przy użyciu usług IIS. (Synchronizacja sieci Web jest obsługiwana tylko w przypadku subskrypcji pobierania).

Aktualizacja z wcześniejszej wersji SQL Server

Jeśli masz skonfigurowaną topologię synchronizacji webowej i aktualizujesz SQL Server, upewnij się, że najnowsza wersja replisapi.dll jest kopiowana do wirtualnego katalogu używanego przez synchronizację web. Domyślnie najnowsza wersja replisapi.dll znajduje się w C:\Program Files\Microsoft SQL Server\<nnn>\COM.

Replikacja dużych ilości danych

Aby uniknąć potencjalnych problemów z pamięcią na komputerach subskrybentów, synchronizacja internetowa używa domyślnego maksymalnego rozmiaru 100 MB dla pliku XML używanego do przesyłania zmian. Zwiększ limit, ustawiając następujący klucz rejestru:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Replication

WebSyncMaxXmlSize DWORD 2000000

Zakres dopuszczalnych wartości dla tego klucza wynosi od 100 MB do 4 GB. Wartość jest określona w kb. Ustawienie tego parametru na wysoką wartość nie gwarantuje, że uda się zsynchronizować taką ilość danych. Obowiązujący limit jest ograniczony przez ilość ciągłej pamięci jest dostępna na komputerze subskrybenta. Jeśli musisz mieć wartość większą niż 100 MB, stopniowo zwiększ wartość i testuj zużycie pamięci przy typowym obciążeniu na Subscriber.

Maksymalny rozmiar pliku XML wynosi 4 GB, ale replikacja synchronizuje zmiany z tego pliku w partiach. Maksymalny rozmiar partii danych i metadanych wynosi 25 MB. Musisz upewnić się, że rozmiar danych w każdej partii nie przekracza około 20 MB, tak aby uwzględnić metadane i wszelki dodatkowy narzut. Ten limit ma następujące konsekwencje:

  • Nie da się powtórzyć żadnej kolumny, która powoduje, że dane i metadane przekraczają 25 MB. Ten limit może być problemem przy replikowaniu wierszy zawierających duże typy danych, takich jak varchar(max).

  • Jeśli replikujesz duże ilości danych, może być konieczne dostosowanie rozmiaru partii Merge Agent.

Wielkość partii dla replikacji scalania jest mierzona w generacjach, które są zbiorami zmian na artykuł. Użyj parametrów -DownloadGenerationsPerBatch oraz -UploadGenerationsPerBatch w Merge Agent, aby określić liczbę generacji w partii. Aby uzyskać więcej informacji, zobacz Agent scalania replikacji.

W przypadku dużych ilości danych określ niewielką liczbę dla każdego parametru przetwarzania wsadowego. Zacznij od wartości 10, a następnie dostosuj do potrzeb aplikacji i wydajności. Zazwyczaj określa się te parametry w profilu agenta. Aby uzyskać więcej informacji na temat profilów, zobacz profile agenta replikacji .

Najlepsze praktyki bezpieczeństwa w synchronizacji sieci Web

Synchronizacja sieci oferuje wiele opcji w ustawieniach związanych z bezpieczeństwem. Użyj następującego podejścia:

  • Dystrybutor i wydawca programu SQL Server mogą znajdować się na tym samym komputerze (typowa konfiguracja replikacji scalania). Jednak zainstaluj IIS na osobnym komputerze.

  • Użyj protokołu Transport Layer Security (TLS), wcześniej znanego jako Secure Sockets Layer (SSL), aby zaszyfrować połączenie między subskrybentem a komputerem z uruchomionymi usługami IIS. Synchronizacja sieci wymaga takiego szyfrowania.

  • Użyj uwierzytelniania podstawowego dla połączeń od subskrybenta do usług IIS. Dzięki użyciu Basic Authentication, IIS może nawiązywać połączenia z Publisher/Distributorem w imieniu abonenta bez konieczności delegowania. Delegowanie jest wymagane, jeśli używasz zintegrowanego uwierzytelniania.

    Notatka

    Uwierzytelnianie podstawowe to metoda, za pomocą której poświadczenia są przekazywane do serwera IIS. Podstawowe uwierzytelnianie nie uniemożliwia określania kont domenowych Windows dla połączeń nawiązanych z IIS.

  • Określ, że Snapshot Agent działa pod kontem domenowym Windows i określ, że agent nawiązuje połączenia jako to konto. (To jest domyślna konfiguracja.) Określ, że każdy Merge Agent działa na kontach domenowych użytkownika korzystającego z komputera Subskrybenta i określ, że agent nawiązuje połączenia jako to konto.

    Więcej informacji o uprawnieniach, których wymagają agenci, można znaleźć w Replication Agent Security Model.

  • Określ to samo konto domeny, którego używa agent scalania, wskazując konto i hasło na stronie Informacje o serwerze sieci Web Kreatora nowej subskrypcji lub wskazując wartości dla parametrów @internet_url i @internet_login w sp_addpullsubscription_agent. To konto musi mieć uprawnienia do odczytu dla udziału migawek.

  • Każda publikacja powinna używać oddzielnego katalogu wirtualnego dla usług IIS.

  • Konto, na którym działa SQL Server Replication Listener (replisapi.dll), jest jednocześnie kontem łączącym się z Publisher i Distributorem podczas synchronizacji. To konto musi być przypisane do konta logowania SQL Server w Publisher and Distributor. Aby uzyskać więcej informacji, zobacz sekcję "Ustawianie uprawnień odbiornika replikacji programu SQL Server" w Konfigurowanie usług IIS na potrzeby synchronizacji sieci Web.

  • Możesz użyć FTP, aby przesłać migawkę z Publisher na komputer działający na IIS. Komputer uruchamiający IIS zawsze dostarcza snapshot do abonenta za pomocą HTTPS. Aby uzyskać więcej informacji, zobacz Przesyłanie migawków przez FTP.

  • Jeśli serwery w topologii replikacji znajdują się za zaporą, może być konieczne otwarcie portów w zaporze w celu włączenia synchronizacji sieci Web.

    • Komputer abonenta łączy się z komputerem uruchamiającym IIS przez HTTPS, korzystając z TLS, który zazwyczaj jest skonfigurowany do portu 443. Subskrybenci programu SQL Server Compact mogą również łączyć się za pośrednictwem protokołu HTTP, który jest zwykle skonfigurowany do korzystania z portu 80.

    • Komputer uruchamiający IIS zazwyczaj łączy się z Publisher lub Distributorem, korzystając z portu 1433 (domyślna instancja). Gdy wydawca lub dystrybutor jest nazwanym wystąpieniem na serwerze z innym wystąpieniem domyślnym, port 1500 jest zwykle używany do nawiązywania połączenia z nazwanym wystąpieniem.

    • Jeśli komputer z IIS jest oddzielony od dystrybutora zaporą sieciową, a do dostarczania snapshotów używa się udziału FTP, musisz otworzyć porty używane do FTP. Aby uzyskać więcej informacji, zobacz Przesyłanie migawków przez FTP.

Ważny

Otwieranie portów w zaporze może pozostawić serwer narażony na złośliwe ataki. Przed otwarciem portów upewnij się, że rozumiesz systemy zapór ogniowych. Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące zabezpieczeń instalacji programu SQL Server.