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

Dotyczy:Azure SQL Database

SQL Data Sync to usługa oparta na usłudze Azure SQL Database, która umożliwia synchronizowanie danych wybieranych dwukierunkowo w wielu bazach danych, zarówno w środowisku lokalnym, jak i w chmurze.

Ważne

Usługa Azure SQL Data Sync nie obsługuje obecnie usługi 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. Jako bazę danych centrum należy zdefiniować jedną z baz danych w grupie synchronizacji. Pozostałe bazy danych są bazami danych członkowskich. Synchronizacja odbywa się tylko między koncentratorem a poszczególnymi członkami.

  • Baza danych centrum musi być usługą Azure SQL Database.
  • Członkowskimi bazami danych mogą być bazy danych w usłudze Azure SQL Database lub w wystąpieniach programu SQL Server.
  • Baza danych metadanych synchronizacji zawiera metadane i dziennik usługi Data Sync. Baza danych metadanych synchronizacji musi być usługą Azure SQL Database 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 lub agenci synchronizacji. Firma Microsoft zaleca utworzenie nowej, pustej bazy danych do użycia jako baza 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łonkowskiej, musisz zainstalować i skonfigurować lokalnego agenta synchronizacji.

Sync data between databases

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 lub elementu członkowskiego do centrum lub obu tych elementów.
  • 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 używać

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

  • Synchronizacja danych hybrydowych: dzięki usłudze Data Sync można zachować synchronizację danych między bazami danych w programie SQL Server i usłudze Azure SQL Database w celu włączenia aplikacji hybrydowych. Ta możliwość może być atrakcyjna dla klientów, 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. Synchronizacja danych umożliwia synchronizowanie 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
Skalowanie odczytu Używanie replik tylko do odczytu do równoważenia obciążenia zapytań tylko do odczytu
ETL (OLTP to OLAP) Azure Data Factory lub SQL Server Integration Services
Migracja z programu SQL Server do usługi Azure SQL Database. Jednak usługa SQL Data Sync może być używana 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. 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 najpierw synchronizuje.

Porównanie z replikacją transakcyjną

Synchronizacja danych Replikacja transakcyjna
Zalety - Obsługa aktywne-aktywne
- Dwukierunkowe między środowiskiem lokalnym i usługą Azure SQL Database
- Mniejsze opóźnienie
- Spójność transakcyjna
— Ponowne używanie istniejącej topologii po migracji
-Obsługa usługi 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 usługi SQL Data Sync różni się od usługi Azure Private Link.

Nowa funkcja łącza prywatnego umożliwia wybranie zarządzanego przez usługę prywatnego punktu końcowego w celu ustanowienia bezpiecznego połączenia między usługą synchronizacji a bazami danych elementów członkowskich/centrów podczas procesu synchronizacji danych. Zarządzany prywatny punkt końcowy usługi to prywatny adres IP w obrębie 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.

Private link for Data Sync

Uwaga

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

Rozpocznij

Konfigurowanie usługi Data Sync w witrynie 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 wyzwalaczach, spójność transakcyjna nie jest gwarantowana. Firma Microsoft gwarantuje, że wszystkie zmiany zostaną wprowadzone w końcu i że usługa Data Sync nie powoduje 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 a 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 członków synchronizacji, jak i centrum. Aby uzyskać więcej informacji, zobacz Izolacja migawki w programie SQL Server.

  • Aby można było używać łącza prywatnego usługi Data Sync, zarówno bazy danych elementów członkowskich, jak i baz danych centrum muszą być hostowane na platformie Azure (tym samym lub w różnych regionach) w tym samym typie chmury (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 członków. 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 witrynie Azure Portal lub za pośrednictwem programu PowerShell. Aby uzyskać więcej informacji na temat zatwierdzania łącza prywatnego, zobacz Konfigurowanie usługi 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/koncentratora 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.
  • Zachowaj ostrożność podczas używania następujących typów danych jako klucza podstawowego, ponieważ obsługiwana jest precyzja tylko do sekundy: time, datetime, datetime2, datetimeoffset.
  • Nazwy obiektów (baz danych, tabel i kolumn) nie mogą zawierać znaków drukowalnych: kropki (.), lewego nawiasu kwadratowego ([) ani prawego nawiasu kwadratowego (]).
  • Nazwa tabeli nie może zawierać znaków drukowalnych: ! " # $ % ' ( ) * + - ani spacji.
  • Uwierzytelnianie microsoft Entra (dawniej Azure Active Directory) nie jest obsługiwane.
  • Jeśli istnieją tabele o tej samej nazwie, ale różnym schemacie (na przykład dbo.customers i sales.customers), do synchronizacji można dodać tylko jedną z tabel.
  • 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 wielkością liter (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 zostaną śledzone).
  • Używanie bazy danych Usługi 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ć składową bazą danych w topologii usługi Data Sync.
  • Tabele zoptymalizowane pod kątem pamięci nie są obsługiwane.
  • Zmiany schematu nie są replikowane automatycznie. Można utworzyć rozwiązanie niestandardowe automatycznie replikujące zmiany schematu.
  • Usługa Data Sync obsługuje tylko następujące dwie właściwości indeksu: Unikatowe, Klastrowane/Nieklaterowane. Inne właściwości indeksu, takie jak IGNORE_DUP_KEY lub predykat filtru WHERE, nie są obsługiwane, a indeks docelowy jest aprowizowany bez tych właściwości, nawet jeśli źródłowy indeks ma te właściwości ustawione.
  • Baza danych zadań elastycznych platformy Azure nie może być używana jako baza danych metadanych usługi SQL Data Sync i odwrotnie.
  • Usługa SQL Data Sync nie jest obsługiwana w przypadku baz danych rejestru.

Nieobsługiwane typy danych

  • Filestream
  • SQL/CLR UDT
  • XMLSchemaCollection (obsługiwany kod XML)
  • Kursor, RowVersion, Sygnatura czasowa, Hierarchyid

Nieobsługiwane typy kolumn

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

  • Obliczone kolumny.
  • 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 znajdować się 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 ustawieniach Firewalls and virtual networks :

  • Odmowa dostępu do sieci publicznej musi być ustawiona na Wartość Wyłączone.
  • Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera musi być ustawiona wartość Tak lub należy utworzyć reguły adresów IP dla adresów IP używanych przez usługę Data Sync.

Po utworzeniu i aprowizacji grupy synchronizacji można wyłączyć te ustawienia. Agent synchronizacji łą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 koncentratora.

Uwaga

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

Miejsce przechowywania danych regionów

W przypadku synchronizowania danych w tym samym regionie usługa SQL Data Sync nie przechowuje/przetwarza danych klientów poza tym regionem, w którym wdrożono wystąpienie usługi. W przypadku synchronizowania danych między różnymi regionami usługa SQL Data Sync replikuje dane klientów do sparowanych regionów.

Często zadawane pytania dotyczące usługi 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 usługi SQL Database. Aby uzyskać więcej informacji, zobacz Opłaty za transfer danych.

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

Usługa SQL Data Sync jest dostępna we wszystkich regionach.

Czy wymagane jest konto usługi SQL Database?

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

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

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

Czy można skonfigurować usługę Data Sync w celu synchronizacji między bazami danych w usłudze Azure SQL Database należącymi do różnych subskrypcji?

Tak. Synchronizację między bazami danych należącymi do grup zasobów należących do różnych subskrypcji można skonfigurować, 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 witrynie Azure Portal.
  • W przeciwnym razie musisz użyć programu PowerShell, aby dodać członków synchronizacji.

Czy mogę skonfigurować usługę Data Sync w celu synchronizacji między bazami danych w usłudze SQL Database należącymi do różnych chmur (takich jak chmura publiczna platformy Azure i platforma Azure obsługiwana przez firmę 21Vianet)?

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

Czy można używać usługi Data Sync do rozmieszczania danych z produkcyjnej bazy danych do pustej bazy danych, a następnie synchronizować je?

Tak. Utwórz schemat ręcznie w nowej bazie danych, wykonując jego skrypty na podstawie oryginału. Po utworzeniu schematu dodaj tabele do grupy synchronizacji, aby skopiować dane i zachować synchronizację.

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

Nie zaleca się używania usługi SQL Data Sync do tworzenia kopii zapasowej danych. Nie można utworzyć kopii zapasowej i przywrócić do określonego punktu w czasie, ponieważ synchronizacje usługi SQL Data Sync nie są wersjonowane. Ponadto usługa SQL Data Sync nie wykonuje kopii zapasowych 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 może synchronizować zaszyfrowane tabele i kolumny?

  • Jeśli baza danych używa funkcji Always Encrypted, można zsynchronizować tylko tabele i kolumny, które nieszyfrowane. Nie można zsynchronizować zaszyfrowanych kolumn, ponieważ usługa Data Sync nie może odszyfrować danych.
  • Jeśli kolumna używa szyfrowania na poziomie kolumny, 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.

Czy sortowanie jest obsługiwane w usłudze SQL Data Sync?

Tak. Usługa SQL Data Sync obsługuje konfigurowanie ustawień sortowania w następujących scenariuszach:

  • Jeśli wybrane tabele schematu synchronizacji nie są jeszcze w centrum lub bazach danych członkowskich, 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 już istnieją zarówno w bazach danych centrum, jak i w bazach danych członkowskich, usługa SQL Data Sync wymaga, aby kolumny klucza podstawowego miały takie same sortowanie między bazami danych koncentratora i składowych, aby pomyślnie wdrożyć grupę synchronizacji. Nie ma żadnych ograniczeń sortowania dla kolumn innych niż kolumny klucza podstawowego.

Czy federacja jest obsługiwana w usłudze SQL Data Sync?

Federacyjna główna baza danych może być używana w usłudze SQL Data Sync bez żadnych ograniczeń. Nie można dodać punktu końcowego federacyjnej bazy danych do bieżącej wersji usługi 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 byOD?

Funkcja dynamics 365 bring your own database umożliwia administratorom eksportowanie jednostek danych z aplikacji do własnej bazy danych Microsoft Azure SQL Database. Synchronizacja danych 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 są parowane 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ą replikowane automatycznie. Niektóre rozwiązania można znaleźć w następujących artykułach:

Monitorowanie i rozwiązywanie problemów

Czy usługa 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 Azure SQL Database

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