Wat is SQL Data Sync voor Azure?
SQL Data Sync is een service die is gebouwd op Azure SQL Database waarmee u de gegevens die u selecteert in twee richtingen kunt synchroniseren tussen meerdere databases, zowel on-premises als in de cloud.
Belangrijk
Azure SQL Data Sync biedt momenteel geen ondersteuning voor Azure SQL Managed Instance.
Overzicht
Data Sync is gebaseerd op het concept van een synchronisatiegroep. Een synchronisatiegroep is een groep databases die u wilt synchroniseren.
Data Sync maakt gebruik van een hub en spoke-topologie om gegevens te synchroniseren. U definieert een van de databases in de synchronisatiegroep als de hubdatabase. De rest van de databases zijn liddatabases. Synchronisatie vindt alleen plaats tussen de hub en afzonderlijke leden.
- De hubdatabase moet een Azure SQL Database.
- De liddatabases kunnen databases zijn in Azure SQL Database of in exemplaren van SQL Server.
- De database met metagegevens van synchronisatie bevat de metagegevens en het logboek voor Data Sync. De metagegevensdatabase voor synchronisatie moet een Azure SQL Database zich in dezelfde regio bevinden als de hubdatabase. De Database met metagegevens van synchronisatie is van de klant en is eigendom van de klant. U kunt slechts één Sync Metadata-database per regio en abonnement hebben. Synchronisatiemetagegevensdatabase kan niet worden verwijderd of de naam kan niet worden gewijzigd terwijl er synchronisatiegroepen of synchronisatieagents bestaan. U wordt aangeraden een nieuwe, lege database te maken die als Database met metagegevens van synchronisatie wordt gebruikt. Met Data Sync worden tabellen in deze database gemaakt en een regelmatige workload uitgevoerd.
Notitie
Als u een on-premises database als liddatabase gebruikt, moet u een lokale synchronisatieagent installeren en configureren.

Een synchronisatiegroep heeft de volgende eigenschappen:
- In het synchronisatieschema wordt beschreven welke gegevens worden gesynchroniseerd.
- De synchronisatierichting kan in twee richtingen zijn of kan in slechts één richting stromen. Dat wil zeggen dat de synchronisatierichting Hub naar Lid, Lid op Hub of beide kan zijn.
- Het synchronisatie-interval beschrijft hoe vaak synchronisatie plaatsvindt.
- Het conflictoplossingsbeleid is een beleid op groepsniveau. Dit kan Hub wins of Member wins zijn.
Wanneer gebruikt u dit?
Data Sync is handig in gevallen waarin gegevens moeten worden bijgewerkt in verschillende databases in Azure SQL Database of SQL Server. Dit zijn de belangrijkste gebruiksgevallen voor Data Sync:
- Hybride gegevenssynchronisatie: Met Data Sync kunt u gegevens gesynchroniseerd houden tussen uw databases in SQL Server en Azure SQL Database om hybride toepassingen mogelijk te maken. Deze mogelijkheid kan een beroep doen op klanten die overwegen om over te gaan naar de cloud en een deel van hun toepassing in Azure willen zetten.
- Gedistribueerde toepassingen: In veel gevallen is het handig om verschillende workloads tussen verschillende databases te scheiden. Als u bijvoorbeeld een grote productiedatabase hebt, maar u ook een werkbelasting voor rapportage of analyse moet uitvoeren op deze gegevens, is het handig om een tweede database te hebben voor deze extra workload. Deze aanpak minimaliseert de invloed van de prestaties op uw productieworkload. U kunt de Data Sync deze twee databases gesynchroniseerd te houden.
- Wereldwijd gedistribueerde toepassingen: Veel bedrijven hebben verschillende regio's en zelfs verschillende landen/regio's. Om de netwerklatentie te minimaliseren, is het het beste om uw gegevens in een regio dicht bij u in de buurt te hebben. Met Data Sync kunt u databases eenvoudig gesynchroniseerd houden in regio's over de hele wereld.
Data Sync is niet de aanbevolen oplossing voor de volgende scenario's:
| Scenario | Enkele aanbevolen oplossingen |
|---|---|
| Herstel na noodgevallen | Geografisch redundante back-ups van Azure |
| Leesschaal | Alleen-lezenreplica's gebruiken om alleen-lezen querywerkbelastingen te verdelen (preview) |
| ETL (OLTP naar OLAP) | Azure Data Factory of SQL Server Integration Services |
| Migratie van SQL Server naar Azure SQL Database. De SQL Data Sync kunnen echter worden gebruikt nadat de migratie is voltooid, om ervoor te zorgen dat de bron en het doel synchroon worden gehouden. | Azure Database Migration Service |
Uitleg
- Wijzigingen in gegevens bijhouden: Data Sync wijzigingen bijhouden met behulp van invoeg-, update- en verwijdertriggers. De wijzigingen worden vastgelegd in een zijtabel in de gebruikersdatabase. Houd er BULK INSERT dat er standaard geen triggers worden geactiveerd. Als FIRE_TRIGGERS niet is opgegeven, worden er geen invoegtriggers uitgevoerd. Voeg de FIRE_TRIGGERS toe zodat Data Sync invoegingen kunnen volgen.
- Gegevens synchroniseren: Data Sync is ontworpen in een hub en spoke-model. De hub wordt afzonderlijk gesynchroniseerd met elk lid. Wijzigingen van de hub worden gedownload naar het lid en vervolgens worden wijzigingen van het lid geüpload naar de hub.
- Conflicten oplossen: Data Sync twee opties voor conflictoplossing: Hub wins of Member wins.
- Als u Hub wins selecteert, overschrijven de wijzigingen in de hub altijd wijzigingen in het lid.
- Als u Lid selecteert, wint, worden de wijzigingen in het lid overschreven in de hub. Als er meer dan één lid is, is de uiteindelijke waarde afhankelijk van welk lid het eerst wordt gesynchroniseerd.
Vergelijken met transactionele replicatie
| Gegevens synchroniseren | Transactionele replicatie | |
|---|---|---|
| Voordelen | - Actief/actief-ondersteuning - Bi-directioneel tussen on-premises en Azure SQL Database |
- Lagere latentie - Transactionele consistentie - Bestaande topologie opnieuw gebruiken na migratie Ondersteuning voor -Azure SQL Managed Instance |
| Nadelen | - Geen transactionele consistentie - Hogere invloed op prestaties |
- Kan niet publiceren vanuit Azure SQL Database - Hoge onderhoudskosten |
Privékoppeling voor Data Sync
Met de nieuwe private link-functie kunt u een door de service beheerd privé-eindpunt kiezen om tijdens het gegevenssynchronisatieproces een beveiligde verbinding tot stand te brengen tussen de synchronisatieservice en uw lid-/hubdatabases. Een door de service beheerd privé-eindpunt is een privé-IP-adres binnen een specifiek virtueel netwerk en subnet. Binnen Data Sync wordt het door de service beheerde privé-eindpunt gemaakt door Microsoft en wordt het uitsluitend gebruikt door de Data Sync-service voor een bepaalde synchronisatiebewerking. Lees de algemene vereisten voor de functie voordat u de privékoppeling instelt.

Notitie
U moet het door de service beheerde privé-eindpunt handmatig goedkeuren op de pagina Privé-eindpuntverbindingen van de Azure Portal tijdens de implementatie van de synchronisatiegroep of met behulp van PowerShell.
Aan de slag
De Data Sync in de Azure Portal
- Azure SQL Data Sync instellen
- Data Sync-agent: Data Sync-agent voor Azure SQL Data Sync
Een Data Sync met PowerShell
- PowerShell gebruiken om te synchroniseren tussen meerdere databases in Azure SQL Database
- PowerShell gebruiken om een database in een Azure SQL Database en een database in een SQL Server synchroniseren
Een Data Sync met REST API
Bekijk de best practices voor Data Sync
Is er iets misgegaan?
Consistentie en prestaties
Consistentie Uiteindelijk
Omdat Data Sync op triggers is gebaseerd, wordt transactionele consistentie niet gegarandeerd. Microsoft garandeert dat alle wijzigingen uiteindelijk worden aangebracht en dat Data Sync geen gegevensverlies veroorzaakt.
Invloed op de prestaties
Data Sync maakt gebruik van triggers voor invoegen, bijwerken en verwijderen om wijzigingen bij te houden. Er worden zijtabellen gemaakt in de gebruikersdatabase voor het bijhouden van veranderingen. Deze activiteiten voor het bijhouden van veranderingen hebben invloed op de workload van uw database. Evalueer uw servicelaag en upgrade indien nodig.
Het inrichten en de inrichting van de inrichting tijdens het maken, bijwerken en verwijderen van de synchronisatiegroep kan ook van invloed zijn op de prestaties van de database.
Vereisten en beperkingen
Algemene vereisten
- Elke tabel moet een primaire sleutel hebben. Wijzig de waarde van de primaire sleutel in geen enkele rij. Als u een primaire sleutelwaarde moet wijzigen, verwijdert u de rij en maakt u deze opnieuw met de nieuwe primaire sleutelwaarde.
Belangrijk
Het wijzigen van de waarde van een bestaande primaire sleutel leidt tot het volgende foutgedrag:
- Gegevens tussen hub en lid kunnen verloren gaan, zelfs als synchronisatie geen probleem rapporteert.
- Synchronisatie kan mislukken omdat de traceringstabel een niet-bestaande rij van de bron heeft vanwege de primaire sleutelwijziging.
Isolatie van momentopnamen moet zijn ingeschakeld voor zowel Synchronisatieleden als Hub. Voor meer informatie zie Snapshot-isolatie in SQL Server.
Als u Data Sync private link wilt gebruiken, moeten zowel de lid- als de hubdatabase worden gehost in Azure (dezelfde of verschillende regio's), in hetzelfde cloudtype (bijvoorbeeld in de openbare cloud of beide in de cloud van de overheid). Als u private link wilt gebruiken, moeten Microsoft.Network-resourceproviders bovendien Geregistreerd zijn voor de abonnementen die als host dienen voor de hub- en lidservers. Tot slot moet u de privékoppeling voor Data Sync handmatig goedkeuren tijdens de synchronisatieconfiguratie, in de sectie Privé-eindpuntverbindingen in de Azure Portal of via PowerShell. Zie De privékoppeling instellen voor meer informatie over het goedkeuren van de SQL Data Sync. Zodra u het door de service beheerde privé-eindpunt hebt goedgekeurd, vindt alle communicatie tussen de synchronisatieservice en de lid-/hubdatabases plaats via de privékoppeling. Bestaande synchronisatiegroepen kunnen worden bijgewerkt zodat deze functie is ingeschakeld.
Algemene beperkingen
- Een tabel kan geen identiteitskolom hebben die niet de primaire sleutel is.
- Een primaire sleutel kan niet de volgende gegevenstypen hebben: sql_variant, binair, varbinary, afbeelding, xml.
- Wees voorzichtig wanneer u de volgende gegevenstypen als primaire sleutel gebruikt, omdat de ondersteunde precisie slechts tot de tweede is: tijd, datum/tijd, datum/tijd2, datetimeoffset.
- De namen van objecten (databases, tabellen en kolommen) mogen de afdrukbare tekens periode (.), vierkant haakje links ([) of vierkant haakje rechts (]) niet bevatten.
- Een tabelnaam mag geen afdrukbare tekens bevatten: ! " # $ % ' ( ) * + - spatie
- Azure Active Directory verificatie wordt niet ondersteund.
- Als er tabellen zijn met dezelfde naam maar een ander schema (bijvoorbeeld dbo.customers en sales.customers), kan slechts één van de tabellen worden gesynchroniseerd.
- Kolommen met User-Defined gegevenstypen worden niet ondersteund
- Het verplaatsen van servers tussen verschillende abonnementen wordt niet ondersteund.
- Als twee primaire sleutels alleen verschillend zijn in het geval (bijvoorbeeld Foo en foo), Data Sync dit scenario niet ondersteund.
- Het afkapen van tabellen is geen bewerking die wordt ondersteund door Data Sync (wijzigingen worden niet bij te houden).
- Hyperscale-databases worden niet ondersteund.
- Voor geheugen geoptimaliseerde tabellen worden niet ondersteund.
Niet-ondersteunde gegevenstypen
- Filestream
- SQL/CLR UDT
- XMLSchemaCollection (XML ondersteund)
- Cursor, RowVersion, Timestamp, Hierarchyid
Niet-ondersteunde kolomtypen
Data Sync kunnen geen alleen-lezen kolommen of door het systeem gegenereerde kolommen synchroniseren. Bijvoorbeeld:
- Berekende kolommen.
- Door het systeem gegenereerde kolommen voor tijdelijke tabellen.
Beperkingen voor service- en databasedimenssie
| Dimensies | Limiet | Tijdelijke oplossing |
|---|---|---|
| Maximum aantal synchronisatiegroepen waar een database deel van kan uitmaken. | 5 | |
| Maximum aantal eindpunten in één synchronisatiegroep | 30 | |
| Maximum aantal on-premises eindpunten in één synchronisatiegroep. | 5 | Meerdere synchronisatiegroepen maken |
| Database-, tabel-, schema- en kolomnamen | 50 tekens per naam | |
| Tabellen in een synchronisatiegroep | 500 | Meerdere synchronisatiegroepen maken |
| Kolommen in een tabel in een synchronisatiegroep | 1000 | |
| Gegevensrijgrootte in een tabel | 24 MB |
Notitie
Er kunnen maximaal 30 eindpunten in één synchronisatiegroep zijn als er slechts één synchronisatiegroep is. Als er meer dan één synchronisatiegroep is, mag het totale aantal eindpunten in alle synchronisatiegroepen niet groter zijn dan 30. Als een database tot meerdere synchronisatiegroepen behoort, wordt deze geteld als meerdere eindpunten, niet één.
Netwerkvereisten
Notitie
Als u Privékoppeling synchroniseren gebruikt, zijn deze netwerkvereisten niet van toepassing.
Wanneer de synchronisatiegroep tot stand is gebracht, Data Sync de service verbinding maken met de hubdatabase. Op het moment dat u de synchronisatiegroep tot stand wilt brengen, moet de Azure SQL-server de volgende configuratie hebben in de Firewalls and virtual networks instellingen:
- Openbare netwerktoegang weigeren moet worden ingesteld op Uit.
- Toestaan dat Azure-services en -resources toegang hebben tot deze server, moet zijn ingesteld op Ja of u moet IP-regels maken voor de IP-adressen die worden gebruikt door Data Sync service.
Zodra de synchronisatiegroep is gemaakt en ingericht, kunt u deze instellingen uitschakelen. De synchronisatieagent maakt rechtstreeks verbinding met de hubdatabase en u kunt de IP-regels of privé-eindpunten van de firewall van de server gebruiken om de agent toegang te geven tot de hubserver.
Notitie
Als u de schema-instellingen van de synchronisatiegroep wijzigt, moet u de Data Sync-service weer toegang geven tot de server, zodat de hubdatabase opnieuw kan worden ingericht.
Gegevens in regio's
Als u gegevens binnen dezelfde regio synchroniseert, SQL Data Sync klantgegevens niet opgeslagen of verwerkt buiten die regio waarin het service-exemplaar is geïmplementeerd. Als u gegevens synchroniseert tussen verschillende regio's, SQL Data Sync klantgegevens repliceren naar de gekoppelde regio's.
Veelgestelde vragen over SQL Data Sync
Hoeveel kost de SQL Data Sync service
Er worden geen kosten in rekening SQL Data Sync service zelf. U verzamelt echter nog steeds kosten voor gegevensoverdracht voor het verplaatsen van en naar uw SQL Database exemplaar. Zie Kosten voor gegevensoverdracht voor meer informatie.
Welke regio's ondersteunen Data Sync
SQL Data Sync is beschikbaar in alle regio's.
Is een SQL Database account vereist
Ja. U moet een SQL Database hebben om de hubdatabase te hosten.
Kan ik Data Sync alleen synchroniseren tussen SQL Server databases
Niet rechtstreeks. U kunt echter indirect SQL Server databases synchroniseren door een Hub-database in Azure te maken en vervolgens de on-premises databases toe te voegen aan de synchronisatiegroep.
Kan ik Data Sync om databases in een SQL Database die tot verschillende abonnementen behoren, te synchroniseren
Ja. U kunt synchroniseren tussen databases die deel uitmaken van resourcegroepen die eigendom zijn van verschillende abonnementen, zelfs als de abonnementen tot verschillende tenants behoren.
- Als de abonnementen tot dezelfde tenant behoren en u machtigingen hebt voor alle abonnementen, kunt u de synchronisatiegroep configureren in de Azure Portal.
- Anders moet u PowerShell gebruiken om de synchronisatieleden toe te voegen.
Kan ik Data Sync gebruiken om te synchroniseren tussen databases in SQL Database die deel uitmaken van verschillende clouds (zoals openbare Azure-cloud en Azure China 21Vianet)
Ja. U kunt synchroniseren tussen databases die deel uitmaken van verschillende clouds. U moet PowerShell gebruiken om de synchronisatieleden toe te voegen die deel uitmaken van de verschillende abonnementen.
Kan ik een Data Sync om gegevens uit mijn productiedatabase te seeden naar een lege database en deze vervolgens te synchroniseren
Ja. Maak het schema handmatig in de nieuwe database door een script uit te voeren op de oorspronkelijke database. Nadat u het schema hebt gemaakt, voegt u de tabellen toe aan een synchronisatiegroep om de gegevens te kopiëren en gesynchroniseerd te houden.
Moet ik een SQL Data Sync back-up maken van mijn databases en deze herstellen?
Het is niet raadzaam om een back-up van SQL Data Sync gegevens te maken. U kunt geen back-up maken en herstellen naar een bepaald tijdstip omdat er geen versie SQL Data Sync synchronisaties zijn. Bovendien maakt SQL Data Sync geen back-up van andere SQL-objecten, zoals opgeslagen procedures, en wordt het equivalent van een herstelbewerking niet snel uitgevoerd.
Zie Een database kopiëren in Azure SQL Database voor een aanbevolen back-uptechniek.
Kan Data Sync versleutelde tabellen en kolommen synchroniseren
- Als een database gebruikmaakt Always Encrypted, kunt u alleen de tabellen en kolommen synchroniseren die niet zijn versleuteld. U kunt de versleutelde kolommen niet synchroniseren, omdat Data Sync de gegevens niet kunnen ontsleutelen.
- Als een kolom gebruikmaakt van Column-Level Encryption (CLE), kunt u de kolom synchroniseren, zolang de rijgrootte kleiner is dan de maximale grootte van 24 MB. Data Sync behandelt de kolom die is versleuteld met sleutel (CLE) als normale binaire gegevens. Als u de gegevens op andere synchronisatieleden wilt ontsleutelen, moet u hetzelfde certificaat hebben.
Wordt collatie ondersteund in SQL Data Sync
Ja. SQL Data Sync ondersteunt collatie in de volgende scenario's:
- Als de geselecteerde synchronisatieschematabellen zich nog niet in uw hub- of liddatabases, maakt de service automatisch de bijbehorende tabellen en kolommen met de collatie-instellingen die zijn geselecteerd in de lege doeldatabases wanneer u de synchronisatiegroep implementeert.
- Als de tabellen die moeten worden gesynchroniseerd al bestaan in uw hub- en liddatabases, moet SQL Data Sync ervoor zorgen dat de primaire sleutelkolommen dezelfde collatie tussen hub- en liddatabases hebben om de synchronisatiegroep te kunnen implementeren. Er zijn geen collatiebeperkingen voor andere kolommen dan de kolommen met de primaire sleutel.
Federatie wordt ondersteund in SQL Data Sync
Federation Root Database kan zonder enige beperking worden gebruikt in SQL Data Sync Service. U kunt het federatief database-eindpunt niet toevoegen aan de huidige versie van SQL Data Sync.
Kan ik Data Sync gegevens synchroniseren die zijn geëxporteerd uit Dynamics 365 met de byod-functie (Bring Your Own Database) ?
Met de functie Bring Your Own Database van Dynamics 365 kunnen beheerders gegevensentiteiten uit de toepassing exporteren naar hun Microsoft Azure SQL database. Data Sync kan worden gebruikt om deze gegevens te synchroniseren met andere databases als gegevens worden geëxporteerd met incrementele push (volledige push wordt niet ondersteund) en triggers in de doeldatabase inschakelen is ingesteld op Ja.
Volgende stappen
Het schema van een gesynchroniseerde database bijwerken
Moet u het schema van een database in een synchronisatiegroep bijwerken? Schemawijzigingen worden niet automatisch gerepliceerd. Zie de volgende artikelen voor een aantal oplossingen:
- De replicatie van schemawijzigingen automatiseren met SQL Data Sync in Azure
- PowerShell gebruiken voor het bijwerken van het synchronisatieschema in een bestaande synchronisatiegroep
Controleren en problemen oplossen
Doet SQL Data Sync zoals verwacht? Zie de volgende artikelen voor informatie over het bewaken van activiteiten en het oplossen van problemen:
Meer informatie over Azure SQL Database
Zie de volgende artikelen Azure SQL Database meer informatie over de volgende artikelen: