Co to jest usługa SQL Data Sync platformy Azure?

Dotyczy: baza danych Azure SQL

SQL Data Sync to usługa oparta na usłudze Azure SQL Database, która umożliwia synchronizowanie danych wybieranych dwukierunkowo między wieloma bazami danych, zarówno lokalnie, jak i w chmurze.

Ważne

Azure SQL Data Sync obecnie nie obsługuje Azure SQL Managed Instance ani Azure Synapse Analytics.

Omówienie

Usługa Data Sync opiera się na koncepcji grupy synchronizacji. Grupa synchronizacji to grupa baz danych, które chcesz zsynchronizować.

Usługa Data Sync używa topologii gwiazdy do synchronizowania danych. Należy zdefiniować jedną z baz danych w grupie synchronizacji jako bazę danych centrum. Pozostałe bazy danych to bazy danych członkowskie. Synchronizacja odbywa się tylko między koncentratorem a poszczególnymi elementami członkowskimi.

  • Baza danych centrum musi być bazą danych Azure SQL.
  • Członkowskie bazy danych mogą być bazami danych w usłudze Azure SQL Database lub w wystąpieniach SQL Server.
  • Baza danych metadanych synchronizacji zawiera metadane i dziennik usługi Data Sync. Baza danych metadanych synchronizacji musi być bazą danych Azure SQL znajdującą się w tym samym regionie co baza danych centrum. Baza danych metadanych synchronizacji jest tworzona przez klienta i należąca do klienta. Możesz mieć tylko jedną bazę danych metadanych synchronizacji na region i subskrypcję. Nie można usunąć ani zmienić nazwy bazy danych metadanych synchronizacji, gdy istnieją grupy synchronizacji ani agenci synchronizacji. Firma Microsoft zaleca utworzenie nowej, pustej bazy danych do użycia jako bazy danych metadanych synchronizacji. Usługa Data Sync tworzy tabele w tej bazie danych i uruchamia częste obciążenie.

Uwaga

Jeśli używasz lokalnej bazy danych jako bazy danych członkowskich, musisz zainstalować i skonfigurować lokalnego agenta synchronizacji.

Synchronizowanie danych między bazami danych

Grupa synchronizacji ma następujące właściwości:

  • Schemat synchronizacji opisuje, które dane są synchronizowane.
  • Kierunek synchronizacji może być dwukierunkowy lub może przepływać tylko w jednym kierunku. Oznacza to, że kierunek synchronizacji może być koncentratorem do elementu członkowskiego, członek do centrum lub oba te elementy.
  • Interwał synchronizacji opisuje częstotliwość synchronizacji.
  • Zasady rozwiązywania konfliktów to zasady na poziomie grupy, które mogą być wygrywane przez centrum lub wygrywa członek.

Kiedy stosować

Usługa Data Sync jest przydatna w przypadkach, gdy dane muszą być aktualizowane w kilku bazach danych w usłudze Azure SQL Database lub SQL Server. Poniżej przedstawiono główne przypadki użycia usługi Data Sync:

  • Synchronizacja danych hybrydowych: Usługa Data Sync umożliwia synchronizowanie danych między bazami danych w usługach SQL Server i Azure SQL Database w celu włączenia aplikacji hybrydowych. Ta możliwość może spodobać się klientom, którzy rozważają przejście do chmury i chcą umieścić część swojej aplikacji na platformie Azure.
  • Aplikacje rozproszone: W wielu przypadkach korzystne jest oddzielenie różnych obciążeń między różnymi bazami danych. Jeśli na przykład masz dużą produkcyjną bazę danych, ale musisz również uruchomić obciążenie raportowania lub analizy dla tych danych, warto mieć drugą bazę danych dla tego dodatkowego obciążenia. Takie podejście minimalizuje wpływ na wydajność obciążenia produkcyjnego. Możesz użyć usługi Data Sync, aby zachować synchronizację tych dwóch baz danych.
  • Aplikacje rozproszone globalnie: Wiele firm obejmuje kilka regionów, a nawet kilka krajów/regionów. Aby zminimalizować opóźnienie sieci, najlepiej mieć dane w regionie zbliżonym do Ciebie. Dzięki usłudze Data Sync można łatwo przechowywać bazy danych w regionach na całym świecie.

Usługa Data Sync nie jest preferowanym rozwiązaniem w następujących scenariuszach:

Scenariusz Niektóre zalecane rozwiązania
Odzyskiwanie po awarii Geograficznie nadmiarowe kopie zapasowe platformy Azure
Skala odczytu Używanie replik tylko do odczytu do równoważenia obciążenia zapytań tylko do odczytu
ETL (OLTP do OLAP) Azure Data Factory lub SQL Server Integration Services
Migracja z SQL Server do usługi Azure SQL Database. Jednak SQL Data Sync można użyć po zakończeniu migracji, aby upewnić się, że źródło i element docelowy są zsynchronizowane. Azure Database Migration Service

Jak to działa

  • Śledzenie zmian danych: Usługa Data Sync śledzi zmiany przy użyciu wyzwalaczy wstawiania, aktualizowania i usuwania. Zmiany są rejestrowane w tabeli bocznej w bazie danych użytkownika. Pamiętaj, że funkcja BULK INSERT domyślnie nie uruchamia wyzwalaczy. Jeśli nie określono FIRE_TRIGGERS, nie są wykonywane wyzwalacze wstawiania. Dodaj opcję FIRE_TRIGGERS, aby usługa Data Sync mogła śledzić te wstawki.
  • Synchronizowanie danych: Usługa Data Sync została zaprojektowana w modelu gwiazdy. Koncentrator synchronizuje się indywidualnie z każdym elementem członkowskim. Zmiany z centrum są pobierane do elementu członkowskiego, a następnie zmiany z elementu członkowskiego są przekazywane do centrum.
  • Rozwiązywanie konfliktów: Usługa Data Sync oferuje dwie opcje rozwiązywania konfliktów, wygrywa centrum lub wygrywa członek.
    • Jeśli wybierzesz pozycję Hub wins, zmiany w centrum zawsze zastępują zmiany w elemencie członkowskim.
    • Jeśli wybierzesz pozycję Członek wygra, zmiany w elemencie członkowskim zastąpią zmiany w centrum. Jeśli istnieje więcej niż jeden element członkowski, ostateczna wartość zależy od tego, który element członkowski jest synchronizowany jako pierwszy.

Porównanie z replikacją transakcyjną

Synchronizacja danych Replikacja transakcyjna
Zalety - Obsługa aktywne-aktywne
- Dwukierunkowe między lokalną i Azure SQL Database
- Mniejsze opóźnienie
- Spójność transakcyjna
— Ponowne używanie istniejącej topologii po migracji
Obsługa Azure SQL Managed Instance
Wady - Brak spójności transakcyjnej
- Większy wpływ na wydajność
— Nie można opublikować z usługi Azure SQL Database
- Wysoki koszt konserwacji

Uwaga

Link prywatny SQL Data Sync różni się od Azure Private Link.

Nowa funkcja łącza prywatnego umożliwia wybranie zarządzanego przez usługę prywatnego punktu końcowego w celu nawiązania bezpiecznego połączenia między usługą synchronizacji a bazami danych elementu członkowskiego/centrum podczas procesu synchronizacji danych. Prywatny punkt końcowy zarządzany przez usługę jest prywatnym adresem IP w określonej sieci wirtualnej i podsieci. W ramach usługi Data Sync zarządzany prywatny punkt końcowy usługi jest tworzony przez firmę Microsoft i jest używany wyłącznie przez usługę Data Sync dla danej operacji synchronizacji. Przed skonfigurowaniem linku prywatnego zapoznaj się z ogólnymi wymaganiami dotyczącymi funkcji.

Łącze prywatne dla usługi Data Sync

Uwaga

Należy ręcznie zatwierdzić zarządzany prywatny punkt końcowy usługi na stronie Połączenia prywatnego punktu końcowego Azure Portal podczas wdrażania grupy synchronizacji lub przy użyciu programu PowerShell.

Rozpoczęcie pracy

Konfigurowanie usługi Data Sync w Azure Portal

Konfigurowanie usługi Data Sync za pomocą programu PowerShell

Konfigurowanie usługi Data Sync za pomocą interfejsu API REST

Zapoznaj się z najlepszymi rozwiązaniami dotyczącymi usługi Data Sync

Czy coś poszło nie tak

Spójność i wydajność

Spójność ostateczna

Ponieważ usługa Data Sync jest oparta na wyzwalaczu, spójność transakcyjna nie jest gwarantowana. Firma Microsoft gwarantuje, że wszystkie zmiany zostaną wprowadzone w końcu, a usługa Data Sync nie spowoduje utraty danych.

Wpływ na wydajność

Usługa Data Sync używa wyzwalaczy wstawiania, aktualizowania i usuwania w celu śledzenia zmian. Tworzy tabele boczne w bazie danych użytkownika na potrzeby śledzenia zmian. Te działania śledzenia zmian mają wpływ na obciążenie bazy danych. W razie potrzeby oceń warstwę usługi i uaktualnij ją.

Aprowizowanie i anulowanie aprowizacji podczas tworzenia, aktualizowania i usuwania grupy synchronizacji może również mieć wpływ na wydajność bazy danych.

Wymagania i ograniczenia

Wymagania ogólne

  • Każda tabela musi mieć klucz podstawowy. Nie zmieniaj wartości klucza podstawowego w żadnym wierszu. Jeśli musisz zmienić wartość klucza podstawowego, usuń wiersz i utwórz go ponownie przy użyciu nowej wartości klucza podstawowego.

Ważne

Zmiana wartości istniejącego klucza podstawowego spowoduje następujące błędne zachowanie:

  • Dane między koncentratorem i elementem członkowskim można utracić, mimo że synchronizacja nie zgłasza żadnego problemu.
  • Synchronizacja może zakończyć się niepowodzeniem, ponieważ tabela śledzenia ma inny niż istniejący wiersz ze źródła ze względu na zmianę klucza podstawowego.
  • Izolacja migawki musi być włączona zarówno dla elementów członkowskich synchronizacji, jak i centrum. Aby uzyskać więcej informacji, zobacz Izolacja migawki w programie SQL Server.

  • Aby można było korzystać z łącza prywatnego usługi Data Sync, bazy danych elementów członkowskich i centrów muszą być hostowane na platformie Azure (w tym samym lub w różnych regionach) w tej samej chmurze (na przykład zarówno w chmurze publicznej, jak i w chmurze dla instytucji rządowych). Ponadto aby można było korzystać z łącza prywatnego, Microsoft.Network dostawcy zasobów muszą być zarejestrowani dla subskrypcji hostujących serwery koncentratora i elementów członkowskich. Na koniec należy ręcznie zatwierdzić link prywatny dla usługi Data Sync podczas konfiguracji synchronizacji w sekcji "Połączenia prywatnego punktu końcowego" w Azure Portal lub za pośrednictwem programu PowerShell. Aby uzyskać więcej informacji na temat sposobu zatwierdzania łącza prywatnego, zobacz Konfigurowanie SQL Data Sync. Po zatwierdzeniu zarządzanego prywatnego punktu końcowego usługi cała komunikacja między usługą synchronizacji a bazami danych elementów członkowskich/centrum odbywa się za pośrednictwem łącza prywatnego. Istniejące grupy synchronizacji można zaktualizować w celu włączenia tej funkcji.

Ogólne ograniczenia

  • Tabela nie może mieć kolumny tożsamości, która nie jest kluczem podstawowym.
  • Klucz podstawowy nie może mieć następujących typów danych: sql_variant, binarny, varbinary, image, xml.
  • Należy zachować ostrożność w przypadku używania następujących typów danych jako klucza podstawowego, ponieważ obsługiwana precyzja jest tylko do drugiej: godzina, data/godzina, data/godzina2, data/godzina/godzina.
  • Nazwy obiektów (baz danych, tabel i kolumn) nie mogą zawierać kropki z możliwością drukowania (), lewego nawiasu kwadratowego (.[) ani prawego nawiasu kwadratowego (]).
  • Nazwa tabeli nie może zawierać znaków drukowalnych: ! " # $ % ' ( ) * + - ani spacji.
  • Uwierzytelnianie usługi Azure Active Directory nie jest obsługiwane.
  • Jeśli istnieją tabele o tej samej nazwie, ale różne schematy (na przykład dbo.customers i sales.customers) można dodać tylko jedną z tabel do synchronizacji.
  • Kolumny z typami danych zdefiniowanymi przez użytkownika nie są obsługiwane.
  • Przenoszenie serwerów między różnymi subskrypcjami nie jest obsługiwane.
  • Jeśli dwa klucze podstawowe różnią się tylko w przypadku (na przykład Foo i foo), usługa Data Sync nie będzie obsługiwać tego scenariusza.
  • Obcinanie tabel nie jest operacją obsługiwaną przez usługę Data Sync (zmiany nie będą śledzone).
  • Używanie bazy danych Azure SQL w warstwie Hiperskala jako bazy danych centrum lub metadanych synchronizacji nie jest obsługiwane. Jednak baza danych w warstwie Hiperskala może być członkowskimi bazą danych w topologii usługi Data Sync.
  • Tabele zoptymalizowane pod kątem pamięci nie są obsługiwane.
  • Zmiany schematu nie są automatycznie replikowane. Rozwiązanie niestandardowe można utworzyć w celu zautomatyzowania replikacji zmian schematu.

Nieobsługiwane typy danych

  • Filestream
  • SQL/CLR UDT
  • XMLSchemaCollection (obsługiwane xml)
  • Kursor, RowVersion, Sygnatura czasowa, Hierarchyid

Nieobsługiwane typy kolumn

Usługa Data Sync nie może zsynchronizować kolumn tylko do odczytu ani kolumn generowanych przez system. Przykład:

  • Kolumny obliczane.
  • Kolumny generowane przez system dla tabel czasowych.

Ograniczenia dotyczące wymiarów usługi i bazy danych

Wymiary Limit Obejście
Maksymalna liczba grup synchronizacji, do których może należeć dowolna baza danych. 5
Maksymalna liczba punktów końcowych w pojedynczej grupie synchronizacji 30
Maksymalna liczba lokalnych punktów końcowych w jednej grupie synchronizacji. 5 Tworzenie wielu grup synchronizacji
Nazwy baz danych, tabeli, schematu i kolumn 50 znaków na nazwę
Tabele w grupie synchronizacji 500 Tworzenie wielu grup synchronizacji
Kolumny w tabeli w grupie synchronizacji 1000
Rozmiar wiersza danych w tabeli 24 Mb

Uwaga

W jednej grupie synchronizacji może istnieć maksymalnie 30 punktów końcowych, jeśli istnieje tylko jedna grupa synchronizacji. Jeśli istnieje więcej niż jedna grupa synchronizacji, łączna liczba punktów końcowych we wszystkich grupach synchronizacji nie może przekroczyć 30. Jeśli baza danych należy do wielu grup synchronizacji, jest ona liowana jako wiele punktów końcowych, a nie jeden.

Wymagania dotyczące sieci

Uwaga

Jeśli używasz usługi Sync Private Link, te wymagania dotyczące sieci nie mają zastosowania.

Po ustanowieniu grupy synchronizacji usługa Data Sync musi nawiązać połączenie z bazą danych centrum. Podczas ustanawiania grupy synchronizacji serwer Azure SQL musi mieć następującą konfigurację w ustawieniachFirewalls and virtual networks:

Po utworzeniu i aprowizacji grupy synchronizacji możesz wyłączyć te ustawienia. Agent synchronizacji połączy się bezpośrednio z bazą danych centrum i można użyć reguł adresów IP zapory serwera lub prywatnych punktów końcowych , aby umożliwić agentowi dostęp do serwera centrum.

Uwaga

Jeśli zmienisz ustawienia schematu grupy synchronizacji, musisz ponownie zezwolić usłudze Data Sync na dostęp do serwera, aby można było ponownie aprowizować bazę danych centrum.

Miejsce przechowywania danych w regionie

Jeśli dane są synchronizowane w tym samym regionie, SQL Data Sync nie przechowuje/przetwarza danych klientów poza tym regionem, w którym wdrożono wystąpienie usługi. Jeśli synchronizujesz dane w różnych regionach, SQL Data Sync zreplikuje dane klientów do sparowanych regionów.

Często zadawane pytania dotyczące SQL Data Sync

Ile kosztuje usługa SQL Data Sync

Za samą usługę SQL Data Sync nie są naliczane opłaty. Jednak nadal zbierasz opłaty za transfer danych na potrzeby przenoszenia danych do i z wystąpienia SQL Database. Aby uzyskać więcej informacji, zobacz Opłaty za transfer danych.

Jakie regiony obsługują usługę Data Sync

SQL Data Sync jest dostępna we wszystkich regionach.

Czy wymagane jest konto SQL Database

Tak. Aby hostować bazę danych centrum, musisz mieć konto SQL Database.

Czy można używać usługi Data Sync do synchronizacji tylko między SQL Server bazami danych

Nie bezpośrednio. Można jednak pośrednio synchronizować między SQL Server bazami danych, tworząc bazę danych centrum na platformie Azure, a następnie dodając lokalne bazy danych do grupy synchronizacji.

Czy można skonfigurować synchronizację danych w celu synchronizacji między bazami danych w usłudze Azure SQL Database należących do różnych subskrypcji

Tak. Można skonfigurować synchronizację między bazami danych należącymi do grup zasobów należących do różnych subskrypcji, nawet jeśli subskrypcje należą do różnych dzierżaw.

  • Jeśli subskrypcje należą do tej samej dzierżawy i masz uprawnienia do wszystkich subskrypcji, możesz skonfigurować grupę synchronizacji w Azure Portal.
  • W przeciwnym razie musisz użyć programu PowerShell, aby dodać elementy członkowskie synchronizacji.

Czy mogę skonfigurować usługę Data Sync do synchronizacji między bazami danych w SQL Database należących do różnych chmur (takich jak Azure Public Cloud i Azure — Chiny 21Vianet)

Tak. Można skonfigurować synchronizację między bazami danych należącymi do różnych chmur. Musisz użyć programu PowerShell, aby dodać członków synchronizacji należących do różnych subskrypcji.

Czy mogę używać usługi Data Sync do inicjowania danych z produkcyjnej bazy danych do pustej bazy danych, a następnie synchronizować je

Tak. Utwórz schemat ręcznie w nowej bazie danych, skryptując go z oryginalnej bazy danych. Po utworzeniu schematu dodaj tabele do grupy synchronizacji, aby skopiować dane i zachować synchronizację.

Czy należy używać SQL Data Sync do tworzenia kopii zapasowych i przywracania baz danych

Nie zaleca się używania SQL Data Sync do tworzenia kopii zapasowej danych. Nie można utworzyć kopii zapasowej i przywrócić jej do określonego punktu w czasie, ponieważ synchronizacje SQL Data Sync nie są wersjonowane. Ponadto SQL Data Sync nie wykonuje kopii zapasowej innych obiektów SQL, takich jak procedury składowane i nie wykonuje szybkiej operacji przywracania.

Aby uzyskać jedną zalecaną technikę tworzenia kopii zapasowych, zobacz Kopiowanie bazy danych w usłudze Azure SQL Database.

Czy usługa Data Sync synchronizuje zaszyfrowane tabele i kolumny

  • Jeśli baza danych używa Always Encrypted, można zsynchronizować tylko tabele i kolumny, które nie są szyfrowane. Nie można zsynchronizować zaszyfrowanych kolumn, ponieważ usługa Data Sync nie może odszyfrować danych.
  • Jeśli kolumna używa Column-Level Encryption (CLE), możesz zsynchronizować kolumnę, o ile rozmiar wiersza jest mniejszy niż maksymalny rozmiar 24 Mb. Usługa Data Sync traktuje kolumnę zaszyfrowaną przez klucz (CLE) jako normalne dane binarne. Aby odszyfrować dane innych członków synchronizacji, musisz mieć ten sam certyfikat.

Sortowanie jest obsługiwane w SQL Data Sync

Tak. SQL Data Sync obsługuje sortowanie w następujących scenariuszach:

  • Jeśli wybrane tabele schematu synchronizacji nie są jeszcze w bazach danych centrum lub składowych, po wdrożeniu grupy synchronizacji usługa automatycznie tworzy odpowiednie tabele i kolumny z ustawieniami sortowania wybranymi w pustych docelowych bazach danych.
  • Jeśli tabele do synchronizacji istnieją już w bazach danych centrum i składowych, SQL Data Sync wymaga, aby kolumny klucza podstawowego miały takie samo sortowanie między bazami danych piasty i składowych, aby pomyślnie wdrożyć grupę synchronizacji. Nie ma żadnych ograniczeń sortowania kolumn innych niż kolumny klucza podstawowego.

Czy federacja jest obsługiwana w SQL Data Sync

W usłudze SQL Data Sync można używać federacyjnej głównej bazy danych bez żadnych ograniczeń. Nie można dodać punktu końcowego federacyjnej bazy danych do bieżącej wersji SQL Data Sync.

Czy można używać usługi Data Sync do synchronizowania danych wyeksportowanych z usługi Dynamics 365 przy użyciu funkcji bring your own database (BYOD) ?

Funkcja usługi Dynamics 365 bring your own database umożliwia administratorom eksportowanie jednostek danych z aplikacji do własnej bazy danych microsoft Azure SQL. Usługa Data Sync może służyć do synchronizowania tych danych z innymi bazami danych, jeśli dane są eksportowane przy użyciu wypychania przyrostowego (pełne wypychanie nie jest obsługiwane) i włączenie wyzwalaczy w docelowej bazie danych ma wartość tak.

Jak mogę utworzyć usługę Data Sync w grupie trybu failover w celu obsługi odzyskiwania po awarii?

  • Aby upewnić się, że operacje synchronizacji danych w regionie trybu failover znajdują się na równi z regionem podstawowym, po przejściu w tryb failover musisz ręcznie ponownie utworzyć grupę synchronizacji w regionie trybu failover z tymi samymi ustawieniami co region podstawowy.

Następne kroki

Aktualizowanie schematu zsynchronizowanej bazy danych

Czy musisz zaktualizować schemat bazy danych w grupie synchronizacji? Zmiany schematu nie są automatycznie replikowane. Aby zapoznać się z niektórymi rozwiązaniami, zobacz następujące artykuły:

Monitorowanie i rozwiązywanie problemów

Czy SQL Data Sync działa zgodnie z oczekiwaniami? Aby monitorować aktywność i rozwiązywać problemy, zobacz następujące artykuły:

Dowiedz się więcej o usłudze Azure SQL Database

Aby uzyskać więcej informacji na temat bazy danych Azure SQL, zobacz następujące artykuły: