Vad är SQL Data Sync för Azure?
SQL Data Sync är en tjänst som bygger på Azure SQL Database som gör att du kan synkronisera data som du väljer i båda riktningarna över flera databaser, både lokalt och i molnet.
Viktigt
Azure SQL Data Sync stöder inte Azure SQL Managed Instance just nu.
Översikt
Data Sync baseras på begreppet synkroniseringsgrupp. En synkroniseringsgrupp är en grupp med databaser som du vill synkronisera.
Data Sync använder en topologi med nav och ekrar för att synkronisera data. Du definierar en av databaserna i synkroniseringsgruppen som hubbdatabasen. Resten av databaserna är medlemsdatabaser. Synkronisering sker bara mellan hubben och enskilda medlemmar.
- Hubbdatabasen måste vara en Azure SQL Database.
- Medlemsdatabaserna kan antingen vara databaser i Azure SQL Database eller i instanser av SQL Server.
- Sync Metadata Database innehåller metadata och loggen för Data Sync. Sync Metadata Database måste vara en Azure SQL Database i samma region som hubbdatabasen. Synkroniseringsmetadatadatabasen är kundskapad och kundägd. Du kan endast ha en databas med synkroniseringsmetadata per region och prenumeration. Sync Metadata Database kan inte tas bort eller byta namn medan synkroniseringsgrupper eller synkroniseringsagenter finns. Microsoft rekommenderar att du skapar en ny, tom databas för användning som Sync Metadata Database. Data Sync skapar tabeller i den här databasen och kör en frekvent arbetsbelastning.
Anteckning
Om du använder en lokal databas som en medlemsdatabas måste du installera och konfigurera en lokal synkroniseringsagent.

En synkroniseringsgrupp har följande egenskaper:
- Synkroniseringsschemat beskriver vilka data som synkroniseras.
- Synkroniseringsriktningen kan vara dubbelriktad eller bara flöda i en riktning. Synkroniseringsriktningen kan vara Hub to Member (Hubb till medlem) eller Member to Hub (Medlem till hubb) eller båda.
- Synkroniseringsintervallet beskriver hur ofta synkronisering sker.
- Konfliktlösningsprincipen är en grupprincip på gruppnivå som kan vara Hub wins eller Member wins.
När du ska använda detta
Data Sync är användbart i fall där data måste uppdateras över flera databaser i Azure SQL Database eller SQL Server. Här är de viktigaste användningsfallen för Data Sync:
- Hybriddatasynkronisering: Med Data Sync kan du hålla data synkroniserade mellan dina databaser i SQL Server och Azure SQL Database för att aktivera hybridprogram. Den här funktionen kan tilltalande för kunder som överväger att flytta till molnet och vill placera en del av sina program i Azure.
- Distribuerade program: I många fall är det bra att separera olika arbetsbelastningar mellan olika databaser. Om du till exempel har en stor produktionsdatabas, men även behöver köra en rapport- eller analysarbetsbelastning på dessa data, är det bra att ha en andra databas för den här ytterligare arbetsbelastningen. Den här metoden minimerar prestandapåverkan på din produktionsarbetsbelastning. Du kan använda Data Sync för att hålla dessa två databaser synkroniserade.
- Globalt distribuerade program: Många företag sträcker sig över flera regioner och till och med flera länder/regioner. För att minimera nätverksfördröjningen är det bäst att ha dina data i en region nära dig. Med Data Sync kan du enkelt synkronisera databaser i regioner över hela världen.
Data Sync är inte den bästa lösningen för följande scenarier:
| Scenario | Några rekommenderade lösningar |
|---|---|
| Haveriberedskap | Geo-redundanta azure-säkerhetskopieringar |
| Lässkala | Använd skrivskyddade repliker för att belastningsutjämna skrivskyddade frågearbetsbelastningar (förhandsversion) |
| ETL (OLTP till OLAP) | Azure Data Factory eller SQL Server Integration Services |
| Migrering från SQL Server till Azure SQL Database. Men SQL Data Sync kan användas när migreringen är klar för att säkerställa att källan och målet är synkroniserade. | Azure Database Migration Service |
Så här fungerar det
- Spåra dataändringar: Data Sync spårar ändringar med hjälp av infognings-, uppdaterings- och borttagningsutlösare. Ändringarna registreras i en sidotabell i användardatabasen. Observera att BULK INSERT inte utlöser utlösare som standard. Om FIRE_TRIGGERS inte anges körs inga infogningsutlösare. Lägg till FIRE_TRIGGERS så att Data Sync kan spåra dessa infogningar.
- Synkronisera data: Data Sync i en nav- och ekermodell. Hubben synkroniseras med varje medlem individuellt. Ändringar från hubben laddas ned till medlemmen och sedan överförs ändringar från medlemmen till hubben.
- Lösa konflikter: Data Sync två alternativ för konfliktlösning, hubb vinner eller medlem vinner.
- Om du väljer Hubb vinner skriver ändringarna i hubben alltid över ändringar i medlemmen.
- Om du väljer Medlem vinner kommer ändringarna i medlemmen att skriva över ändringar i hubben. Om det finns fler än en medlem beror det slutliga värdet på vilken medlem som synkroniserar först.
Jämför med transaktionsreplikering
| Datasynkronisering | Transaktionsreplikering | |
|---|---|---|
| Fördelar | – Stöd för aktiv-aktiv – Dubbelriktad mellan lokala och Azure SQL Database |
– Kortare svarstider – Transaktionskonsekvens – Återanvända befintlig topologi efter migrering – Stöd för Azure SQL Managed Instance |
| Nackdelar | – Ingen transaktionskonsekvens – Högre prestandapåverkan |
– Det går inte att publicera från Azure SQL Database – Höga underhållskostnader |
Privat länk för Data Sync
Med den nya privata länkfunktionen kan du välja en tjänst hanterad privat slutpunkt för att upprätta en säker anslutning mellan synkroniseringstjänsten och dina medlems-/hubbdatabaser under datasynkroniseringsprocessen. En tjänst hanterad privat slutpunkt är en privat IP-adress inom ett specifikt virtuellt nätverk och undernät. I Data Sync skapas den tjänst hanterade privata slutpunkten av Microsoft och används uteslutande av Data Sync tjänsten för en viss synkroniseringsåtgärd. Läs de allmänna kraven för funktionen innan du ställer in den privata länken.

Anteckning
Du måste godkänna den tjänst hanterade privata slutpunkten manuellt på sidan Privata slutpunktsanslutningar i Azure Portal under distributionen av synkroniseringsgruppen eller med hjälp av PowerShell.
Kom igång
Konfigurera Data Sync i Azure Portal
- Konfigurera Azure SQL Data Sync
- Datasynkroniseringsagent – Datasynkroniseringsagent för Azure SQL Data Sync
Konfigurera Data Sync med PowerShell
- Använda PowerShell för att synkronisera mellan flera databaser i Azure SQL Database
- Använda PowerShell för att synkronisera mellan en databas i Azure SQL Database och en databas i en SQL Server instans
Konfigurera Data Sync med REST API
Granska metodtipsen för Data Sync
Har något gått fel
Konsekvens och prestanda
Slutlig konsekvens
Eftersom Data Sync är utlösarbaserad garanteras inte transaktionskonsekvens. Microsoft garanterar att alla ändringar görs så småningom och Data Sync inte orsakar dataförlust.
Prestandapåverkan
Data Sync infognings-, uppdaterings- och borttagningsutlösare för att spåra ändringar. Den skapar sidotabeller i användardatabasen för ändringsspårning. Dessa aktiviteter för ändringsspårning påverkar din databasarbetsbelastning. Utvärdera din tjänstnivå och uppgradera om det behövs.
Etablering och avetablering när synkroniseringsgruppen skapas, uppdateras och tas bort kan också påverka databasens prestanda.
Krav och begränsningar
Allmänna krav
- Varje tabell måste ha en primärnyckel. Ändra inte värdet för primärnyckeln på någon rad. Om du måste ändra värdet för en primär nyckel tar du bort raden och återskapar den med det nya primärnyckelvärdet.
Viktigt
Om du ändrar värdet för en befintlig primärnyckel resulterar det i följande felaktiga beteende:
- Data mellan hubb och medlem kan gå förlorade även om synkroniseringen inte rapporterar några problem.
- Synkroniseringen kan misslyckas eftersom spårningstabellen har en icke-befintlig rad från källan på grund av den primära nyckeländringen.
Isolering av ögonblicksbilder måste aktiveras för både synkroniseringsmedlemmar och hubb. Mer information finns i Ögonblicksbildisolering i SQL Server.
För att du Data Sync privat länk måste både medlems- och hubbdatabaserna finnas i Azure (samma eller olika regioner) i samma molntyp (t.ex. både i det offentliga molnet eller båda i myndighetsmolnet). Om du vill använda private link måste dessutom Microsoft.Network-resursproviders vara registrerade för de prenumerationer som är värdar för hubb- och medlemsservrarna. Slutligen måste du manuellt godkänna den privata länken för Data Sync under synkroniseringskonfigurationen i avsnittet "Privata slutpunktsanslutningar" i Azure Portal eller via PowerShell. Mer information om hur du godkänner den privata länken finns i Konfigurera SQL Data Sync. När du har godkänt den tjänst hanterade privata slutpunkten sker all kommunikation mellan synkroniseringstjänsten och medlems-/hubbdatabaserna via den privata länken. Befintliga synkroniseringsgrupper kan uppdateras så att den här funktionen är aktiverad.
Allmänna begränsningar
- En tabell kan inte ha en identitetskolumn som inte är den primära nyckeln.
- En primärnyckel kan inte ha följande datatyper: sql_variant, binär, varbinary, bild, xml.
- Var försiktig när du använder följande datatyper som primärnyckel, eftersom den precision som stöds bara är den andra: tid, datetime, datetime2, datetimeoffset.
- Namnen på objekt (databaser, tabeller och kolumner) får inte innehålla de utskrivbara tecknen punkt (.), vänster hakparentes ([) eller höger hakparentes (]).
- Ett tabellnamn får inte innehålla utskrivbara tecken: ! " # $ % ' ( ) * + - blanksteg
- Azure Active Directory-autentisering stöds inte.
- Om det finns tabeller med samma namn men ett annat schema (till exempel dbo.customers och sales.customers) kan bara en av tabellerna läggas till i synkroniseringen.
- Kolumner User-Defined datatyper stöds inte
- Det finns inte stöd för att flytta servrar mellan olika prenumerationer.
- Om två primära nycklar endast är olika i fall (t.ex. Foo och foo) Data Sync inte det här scenariot.
- Trunkering av tabeller är inte en åtgärd som stöds av Data Sync (ändringar spåras inte).
- Hyperskaladatabaser stöds inte.
- Minnesoptimerade tabeller stöds inte.
Datatyper som inte stöds
- Filestream
- SQL/CLR UDT
- XMLSchemaCollection (XML stöds)
- Cursor, RowVersion, Timestamp, Hierarchyid
Kolumntyper som inte stöds
Data Sync kan inte synkronisera skrivskyddade eller systemgenererade kolumner. Exempel:
- Beräknade kolumner.
- Systemgenererade kolumner för temporala tabeller.
Begränsningar för tjänst- och databasdimensioner
| Dimensioner | Gräns | Lösning |
|---|---|---|
| Maximalt antal synkroniseringsgrupper som en databas kan tillhöra. | 5 | |
| Maximalt antal slutpunkter i en enda synkroniseringsgrupp | 30 | |
| Maximalt antal lokala slutpunkter i en enda synkroniseringsgrupp. | 5 | Skapa flera synkroniseringsgrupper |
| Databas-, tabell-, schema- och kolumnnamn | 50 tecken per namn | |
| Tabeller i en synkroniseringsgrupp | 500 | Skapa flera synkroniseringsgrupper |
| Kolumner i en tabell i en synkroniseringsgrupp | 1000 | |
| Dataradstorlek i en tabell | 24 MB |
Anteckning
Det kan finnas upp till 30 slutpunkter i en enda synkroniseringsgrupp om det bara finns en synkroniseringsgrupp. Om det finns fler än en synkroniseringsgrupp får det totala antalet slutpunkter i alla synkroniseringsgrupper inte överskrida 30. Om en databas tillhör flera synkroniseringsgrupper räknas den som flera slutpunkter, inte en.
Nätverkskrav
Anteckning
Om du använder Synkronisera privat länk gäller inte dessa nätverkskrav.
När synkroniseringsgruppen har upprättats måste Data Sync ansluta till hubbdatabasen. När du upprättar synkroniseringsgruppen måste Azure SQL-servern ha följande konfiguration i Firewalls and virtual networks sina inställningar:
- Neka offentlig nätverksåtkomst måste anges till Av.
- Tillåt Att Azure-tjänster och -resurser får åtkomst till den här servern måste vara inställt på Ja, eller så måste du skapa IP-regler för DE IP-adresser som används av Data Sync-tjänsten.
När synkroniseringsgruppen har skapats och etablerats kan du inaktivera de här inställningarna. Synkroniseringsagenten ansluter direkt till hubbdatabasen och du kan använda serverns brandväggs-IP-regler eller privata slutpunkter för att ge agenten åtkomst till hubbservern.
Anteckning
Om du ändrar synkroniseringsgruppens schemainställningar måste du tillåta att Data Sync-tjänsten får åtkomst till servern igen så att hubbdatabasen kan etableras igen.
Regiondatahemhemlighet
Om du synkroniserar data inom samma region SQL Data Sync inte lagra/bearbeta kunddata utanför den region där tjänstinstansen distribueras. Om du synkroniserar data mellan olika regioner SQL Data Sync replikera kunddata till de parkopplade regionerna.
Vanliga frågor och svar om SQL Data Sync
Hur mycket kostar SQL Data Sync tjänsten?
Det debiteras inget för SQL Data Sync tjänsten. Du samlar dock fortfarande in dataöverföringsavgifter för dataförflyttning till och från din SQL Database instans. Mer information finns i dataöverföringsavgifter.
Vilka regioner stöder Data Sync
SQL Data Sync är tillgängligt i alla regioner.
Krävs ett SQL Database konto?
Ja. Du måste ha ett SQL Database som värd för hubbdatabasen.
Kan jag bara använda Data Sync för att synkronisera SQL Server databaser
Inte direkt. Du kan dock SQL Server mellan databaser indirekt genom att skapa en hubbdatabas i Azure och sedan lägga till de lokala databaserna i synkroniseringsgruppen.
Kan jag använda Data Sync för att synkronisera mellan databaser SQL Database som tillhör olika prenumerationer
Ja. Du kan synkronisera mellan databaser som tillhör resursgrupper som ägs av olika prenumerationer, även om prenumerationerna tillhör olika klientorganisationer.
- Om prenumerationerna tillhör samma klientorganisation och du har behörighet till alla prenumerationer kan du konfigurera synkroniseringsgruppen i Azure Portal.
- Annars måste du använda PowerShell för att lägga till synkroniseringsmedlemmarna.
Kan jag använda Data Sync för att synkronisera mellan databaser i SQL Database som tillhör olika moln (som Azures offentliga moln och Azure China 21Vianet)
Ja. Du kan synkronisera mellan databaser som tillhör olika moln. Du måste använda PowerShell för att lägga till de synkroniseringsmedlemmar som tillhör de olika prenumerationerna.
Kan jag använda Data Sync för att seeda data från min produktionsdatabas till en tom databas och sedan synkronisera dem
Ja. Skapa schemat manuellt i den nya databasen genom att skripta det från originalet. När du har skapat schemat lägger du till tabellerna i en synkroniseringsgrupp för att kopiera data och synkronisera dem.
Bör jag använda SQL Data Sync för att backa upp och återställa mina databaser
Vi rekommenderar inte att du använder SQL Data Sync för att skapa en säkerhetskopia av dina data. Du kan inte återställning till en viss tidpunkt eftersom SQL Data Sync inte har versionshantering. Dessutom SQL Data Sync inte andra SQL objekt, till exempel lagrade procedurer, och gör inte motsvarigheten till en återställningsåtgärd snabbt.
En rekommenderad säkerhetskopieringsteknik finns i Kopiera en databas i Azure SQL Database.
Kan Data Sync synkronisera krypterade tabeller och kolumner
- Om en databas använder Always Encrypted kan du bara synkronisera de tabeller och kolumner som inte är krypterade. Du kan inte synkronisera krypterade kolumner eftersom Data Sync inte kan dekryptera data.
- Om en kolumn använder Column-Level Encryption (CLE) kan du synkronisera kolumnen så länge radstorleken är mindre än den maximala storleken på 24 MB. Data Sync behandlar kolumnen som krypterats med nyckel (CLE) som normala binära data. Om du vill dekryptera data på andra synkroniseringsmedlemmar måste du ha samma certifikat.
Stöds sortering i SQL Data Sync
Ja. SQL Data Sync har stöd för sortering i följande scenarier:
- Om de valda synkroniseringsschematabellerna inte redan finns i hubb- eller medlemsdatabaserna skapar tjänsten automatiskt motsvarande tabeller och kolumner med sorteringsinställningarna som valts i de tomma måldatabaserna när du distribuerar synkroniseringsgruppen.
- Om de tabeller som ska synkroniseras redan finns i både hubb- och medlemsdatabaserna kräver SQL Data Sync att primärnyckelkolumnerna har samma sortering mellan hubb- och medlemsdatabaser för att synkroniseringsgruppen ska kunna distribueras. Det finns inga sorteringsbegränsningar för andra kolumner än primärnyckelkolumnerna.
Stöds federation i SQL Data Sync
Federationsrotdatabasen kan användas i SQL Data Sync-tjänsten utan begränsning. Du kan inte lägga till slutpunkten för den federerade databasen i den aktuella versionen av SQL Data Sync.
Kan jag använda Data Sync för att synkronisera data som exporteras från Dynamics 365 med hjälp av BYOD-funktionen (Bring Your Own Database)?
Med funktionen Bring Your Own Database i Dynamics 365 kan administratörer exportera dataentiteter från programmet till Microsoft Azure SQL databas. Data Sync kan användas för att synkronisera dessa data till andra databaser om data exporteras med hjälp av inkrementell push (fullständig push stöds inte) och aktivera utlösare i måldatabasen har angetts till ja.
Nästa steg
Uppdatera schemat för en synkroniserad databas
Måste du uppdatera schemat för en databas i en synkroniseringsgrupp? Schemaändringar replikeras inte automatiskt. Några lösningar finns i följande artiklar:
- Automatisera replikeringen av schemaändringar med SQL Data Sync i Azure
- Använd PowerShell för att uppdatera synkroniseringsschemat i en befintlig synkroniseringsgrupp
Övervaka och felsök
Går SQL Data Sync som förväntat? Information om hur du övervakar aktiviteter och felsöker problem finns i följande artiklar:
Läs mer om Azure SQL Database
Mer information om Azure SQL Database finns i följande artiklar: