Vad är SQL Data Sync för Azure?

Gäller för:Azure SQL Database

SQL Data Sync är en tjänst som bygger på Azure SQL Database som gör att du kan synkronisera de data som du väljer dubbelriktad över flera databaser, både lokalt och i molnet.

Viktigt!

Azure SQL Data Sync stöder för närvarande inte Azure SQL Managed Instance eller Azure Synapse Analytics.

Översikt

Datasynkronisering baseras på begreppet synkroniseringsgrupp. En synkroniseringsgrupp är en grupp databaser som du vill synkronisera.

Data Sync använder en hubb- och ekertopologi för att synkronisera data. Du definierar en av databaserna i synkroniseringsgruppen som hubbdatabas. Resten av databaserna är medlemsdatabaser. Synkronisering sker endast mellan hubben och enskilda medlemmar.

  • Hubbdatabasen måste vara en Azure SQL Database.
  • Medlemsdatabaserna kan vara antingen databaser i Azure SQL Database eller i instanser av SQL Server.
  • Databasen för synkroniseringsmetadata innehåller metadata och loggen för datasynkronisering. Databasen för synkroniseringsmetadata måste vara en Azure SQL Database som finns i samma region som hubbdatabasen. Databasen för synkroniseringsmetadata är kundskapade och kundägda. Du kan endast ha en databas med synkroniseringsmetadata per region och prenumeration. Det går inte att ta bort eller byta namn på synkroniseringsmetadatadatabasen när synkroniseringsgrupper eller synkroniseringsagenter finns. Microsoft rekommenderar att du skapar en ny, tom databas som ska användas som databas för synkroniseringsmetadata. Data Sync skapar tabeller i den här databasen och kör en frekvent arbetsbelastning.

Kommentar

Om du använder en lokal databas som en medlemsdatabas måste du installera och konfigurera en lokal synkroniseringsagent.

Sync data between databases

En synkroniseringsgrupp har följande egenskaper:

  • Synkroniseringsschemat beskriver vilka data som synkroniseras.
  • Synkroniseringsriktningen kan vara dubbelriktad eller flöda i endast en riktning. Det vill: Synkroniseringsriktningen kan vara hubb till medlem, medlem till hubb eller båda.
  • Synkroniseringsintervallet beskriver hur ofta synkronisering sker.
  • Konfliktlösningsprincipen är en grupprincip som kan vara hubbvinster eller medlemsvinster.

Användningsområde för

Datasynkronisering är användbart i de fall där data måste uppdateras i flera databaser i Azure SQL Database eller SQL Server. Här är de viktigaste användningsfallen för datasynkronisering:

  • 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 tilltala kunder som funderar på att flytta till molnet och som vill placera en del av sitt program i Azure.
  • Distribuerade program: I många fall är det fördelaktigt att separera olika arbetsbelastningar mellan olika databaser. Om du till exempel har en stor produktionsdatabas, men du också behöver köra en rapporterings- eller analysarbetsbelastning på dessa data, är det bra att ha en andra databas för den här extra arbetsbelastningen. Den här metoden minimerar prestandapåverkan på din produktionsarbetsbelastning. Du kan använda Data Sync för att synkronisera dessa två databaser.
  • 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 runt om i världen.

Datasynkronisering är inte den bästa lösningen för följande scenarier:

Scenario Vissa rekommenderade lösningar
Haveriberedskap Geo-redundanta azure-säkerhetskopior
Lässkala Använda skrivskyddade repliker för att belastningsutjämning av skrivskyddade frågearbetsbelastningar
ETL (OLTP till OLAP) Azure Data Factory eller SQL Server Integration Services
Migrering från SQL Server till Azure SQL Database. SQL Data Sync kan dock användas när migreringen har slutförts för att säkerställa att källan och målet hålls synkroniserade. Azure Database Migration Service

Så här fungerar det

  • Spåra dataändringar: Datasynkronisering spårar ändringar med hjälp av utlösare för infoga, uppdatera och ta bort. Ändringarna registreras i en sidotabell i användardatabasen. BULK INSERT utlöser inte utlösare som standard. Om FIRE_TRIGGERS inte har angetts körs inga infogningsutlösare. Lägg till alternativet FIRE_TRIGGERS så att Data Sync kan spåra dessa infogningar.
  • Synkronisera data: Datasynkronisering är utformat i en hubb- och ekermodell. Hubben synkroniseras med varje medlem individuellt. Ändringar från hubben laddas ned till medlemmen och sedan laddas ändringar från medlemmen upp till hubben.
  • Lösa konflikter: Data Sync innehåller två alternativ för konfliktlösning, hubbvinster eller medlemsvinster.
    • Om du väljer Hub vinner skriver ändringarna i hubben alltid över ändringar i medlemmen.
    • Om du väljer Medlem vinner ändras ändringarna i medlemsöverskrivningen i hubben. Om det finns fler än en medlem beror det slutliga värdet på vilken medlem som synkroniseras först.

Jämför med transaktionsreplikering

Datasynkronisering Transaktionsreplikering
Fördelar – Aktivt stöd
– Dubbelriktad mellan lokal databas och Azure SQL Database
- Kortare svarstid
– Transaktionskonsekvens
– Återanvänd 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

Kommentar

Den privata LÄNKEN FÖR SQL Data Sync skiljer sig från Azure Private Link.

Med den nya funktionen privat länk kan du välja en tjänsthanterad privat slutpunkt för att upprätta en säker anslutning mellan synkroniseringstjänsten och dina medlems-/hubbdatabaser under datasynkroniseringsprocessen. En tjänsthanterad privat slutpunkt är en privat IP-adress i ett visst virtuellt nätverk och undernät. I Data Sync skapas den tjänsthanterade privata slutpunkten av Microsoft och används exklusivt av datasynkroniseringstjänsten för en viss synkroniseringsåtgärd.

Läs de allmänna kraven för funktionen innan du konfigurerar den privata länken.

Private link for Data Sync

Kommentar

Du måste godkänna den tjänsthanterade privata slutpunkten manuellt på sidan Privata slutpunktsanslutningar i Azure-portalen under distributionen av synkroniseringsgruppen eller med hjälp av PowerShell.

Kom igång

Konfigurera datasynkronisering i Azure-portalen

Konfigurera datasynkronisering med PowerShell

Konfigurera datasynkronisering med REST API

Granska metodtipsen för datasynkronisering

Gick något fel

Konsekvens och prestanda

Slutlig konsekvens

Eftersom Data Sync är utlösarbaserat garanteras inte transaktionskonsekvens. Microsoft garanterar att alla ändringar görs så småningom och att Data Sync inte orsakar dataförlust.

Prestandapåverkan

Data Sync använder utlösare för att infoga, uppdatera och ta bort för att spåra ändringar. Den skapar sidotabeller i användardatabasen för ändringsspårning. Dessa ändringsspårningsaktiviteter påverkar databasarbetsbelastningen. Utvärdera tjänstnivån 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 ett primärnyckelvärde 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 hubben och medlemmen kan gå förlorade även om synkroniseringen inte rapporterar något 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 vara aktiverat för både Sync-medlemmar och hubb. Mer information finns i Ögonblicksbildisolering i SQL Server.

  • För att kunna använda en privat datasynkron länk måste både medlems- och hubbdatabaserna finnas i Azure (samma eller olika regioner) i samma molntyp (till exempel både i det offentliga molnet eller i båda i myndighetsmolnet). Om du vill använda privat länk Microsoft.Network måste resursprovidrar dessutom vara registrerade för de prenumerationer som är värdar för hubben och medlemsservrarna. Slutligen måste du godkänna den privata länken för Data Sync manuellt under synkroniseringskonfigurationen, i avsnittet "Privata slutpunktsanslutningar" i Azure-portalen 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änsthanterade 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 primärnyckeln.
  • En primärnyckel kan inte ha följande datatyper: sql_variant, binär, varbinär, bild, xml.
  • Var försiktig när du använder följande datatyper som primärnyckel, eftersom den precision som stöds bara är till den andra: tid, datetime, datetime2, datetimeoffset.
  • Namn på objekt (databaser, tabeller och kolumner) får inte innehålla utskrivbara tecknen punkt (.), vänster hakparentes ([) eller höger hakparentes (]).
  • Ett tabellnamn får inte innehålla utskrivbara tecken: ! " # $ % ' ( ) * + - eller blanksteg.
  • Microsoft Entra-autentisering (tidigare Azure Active Directory) stöds inte.
  • Om det finns tabeller med samma namn men ett annat schema (till exempel dbo.customers och sales.customers) kan endast en av tabellerna läggas till i synkronisering.
  • Kolumner med användardefinierade datatyper stöds inte.
  • Det går inte att flytta servrar mellan olika prenumerationer.
  • Om två primära nycklar bara skiljer sig åt i fall (till exempel Foo och foo) stöder datasynkronisering inte det här scenariot.
  • Trunkering av tabeller är inte en åtgärd som stöds av Data Sync (ändringar spåras inte).
  • Det går inte att använda en Azure SQL Hyperscale-databas som en hubb- eller synkroniseringsmetadatadatabas. En Hyperskala-databas kan dock vara en medlemsdatabas i en datasynkroniseringstopologi.
  • Minnesoptimerade tabeller stöds inte.
  • Schemaändringar replikeras inte automatiskt. En anpassad lösning kan skapas för att automatisera replikeringen av schemaändringar.
  • Data Sync stöder endast följande två indexegenskaper: Unik, Klustrad/Icke-klustrad. Andra egenskaper för ett index, till exempel IGNORE_DUP_KEY eller WHERE-filterpredikatet, stöds inte och målindexet etableras utan dessa egenskaper även om källindexet har dessa egenskaper angivna.
  • En Azure Elastic Jobs-databas kan inte användas som SQL Data Sync-metadatadatabas och vice versa.
  • SQL Data Sync stöds inte för transaktionsregisterdatabaser.

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. Till 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 enskild 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
Dataradsstorlek i en tabell 24 Mb

Kommentar

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 överstiga 30. Om en databas tillhör flera synkroniseringsgrupper räknas den som flera slutpunkter, inte en.

Nätverkskrav

Kommentar

Om du använder Synkronisera privat länk gäller inte dessa nätverkskrav.

När synkroniseringsgruppen har upprättats måste datasynkroniseringstjänsten ansluta till hubbdatabasen. När du upprättar synkroniseringsgruppen måste Azure SQL-servern ha följande konfiguration i Firewalls and virtual networks inställningarna:

  • Neka åtkomst till offentligt nätverk måste vara inställt på Av.
  • Tillåt att Azure-tjänster och resurser får åtkomst till den här servern måste vara inställda 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 sedan 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 tillåta agenten att komma åt hubbservern.

Kommentar

Om du ändrar synkroniseringsgruppens schemainställningar måste du tillåta att datasynkroniseringstjänsten får åtkomst till servern igen så att hubbdatabasen kan etableras på nytt.

Regiondatahemvist

Om du synkroniserar data inom samma region lagrar/bearbetar INTE SQL Data Sync kunddata utanför den region där tjänstinstansen distribueras. Om du synkroniserar data mellan olika regioner replikerar SQL Data Sync kunddata till de kopplade regionerna.

Vanliga frågor och svar om SQL Data Sync

Hur mycket kostar SQL Data Sync-tjänsten?

Det kostar ingenting för själva SQL Data Sync-tjänsten. Du kan dock fortfarande samla in dataöverföringsavgifter för dataflytt in och ut från din SQL Database-instans. Mer information finns i dataöverföringsavgifter.

Vilka regioner har stöd för datasynkronisering?

SQL Data Sync är tillgängligt i alla regioner.

Krävs ett SQL Database-konto?

Ja. Du måste ha ett SQL Database-konto som värd för hubbdatabasen.

Kan jag bara använda Data Sync för att synkronisera mellan SQL Server-databaser?

Inte direkt. Du kan dock synkronisera mellan SQL Server-databaser indirekt genom att skapa en hubbdatabas i Azure och sedan lägga till de lokala databaserna i synkroniseringsgruppen.

Kan jag konfigurera Data Sync för synkronisering mellan databaser i Azure SQL Database som tillhör olika prenumerationer?

Ja. Du kan konfigurera synkronisering 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-portalen.
  • Annars måste du använda PowerShell för att lägga till synkroniseringsmedlemmar.

Kan jag konfigurera Data Sync för synkronisering mellan databaser i SQL Database som tillhör olika moln (till exempel Azure Public Cloud och Azure som drivs av 21Vianet)?

Ja. Du kan konfigurera synkronisering 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 hämta 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 hålla dem synkroniserade.

Ska jag använda SQL Data Sync för att säkerhetskopiera 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 säkerhetskopiera och återställa till en viss tidpunkt eftersom SQL Data Sync-synkroniseringar inte är versionshanterade. Dessutom säkerhetskopierar INTE SQL Data Sync andra SQL-objekt, till exempel lagrade procedurer, och gör inte motsvarande en återställningsåtgärd snabbt.

En rekommenderad säkerhetskopieringsteknik finns i Kopiera en databas i Azure SQL Database.

Kan datasynkronisering synkronisera krypterade tabeller och kolumner?

  • Om en databas använder Always Encrypted kan du bara synkronisera tabeller och kolumner som inte är krypterade. Du kan inte synkronisera de krypterade kolumnerna eftersom Data Sync inte kan dekryptera data.
  • Om en kolumn använder kryptering på kolumnnivå (CLE) kan du synkronisera kolumnen så länge radstorleken är mindre än den maximala storleken på 24 Mb. Data Sync behandlar kolumnen krypterad 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 stöder konfiguration av sorteringsinställningar i följande scenarier:

  • Om de valda synkroniseringsschematabellerna inte redan finns i dina hubb- eller medlemsdatabaser skapar tjänsten automatiskt motsvarande tabeller och kolumner med de sorteringsinställningar som valts i de tomma måldatabaserna när du distribuerar synkroniseringsgruppen.
  • Om tabellerna som ska synkroniseras redan finns i både dina hubb- och medlemsdatabaser kräver SQL Data Sync att de primära nyckelkolumnerna har samma sortering mellan hubb- och medlemsdatabaser för att kunna distribuera synkroniseringsgruppen. Det finns inga sorteringsbegränsningar för andra kolumner än primärnyckelkolumnerna.

Stöds federation i SQL Data Sync?

Federationsrotdatabas kan användas i SQL Data Sync-tjänsten utan några begränsningar. Du kan inte lägga till den federerade databasslutpunkten 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 Dynamics 365 bring your own database-funktionen kan administratörer exportera dataentiteter från programmet till sin egen Microsoft Azure SQL-databas. Datasynkronisering kan användas för att synkronisera dessa data till andra databaser om data exporteras med inkrementell push (fullständig push stöds inte) och aktivera utlösare i måldatabasen är inställt på ja.

Hur gör jag för att skapa datasynkronisering i redundansgruppen för att stödja haveriberedskap?

  • För att säkerställa att datasynkroniseringsåtgärderna i redundansregionen är i nivå med den primära regionen måste du efter redundansväxlingen manuellt återskapa synkroniseringsgruppen i redundansregionen med samma inställningar som den primära regionen.

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. Vissa lösningar finns i följande artiklar:

Övervaka och felsök

Fungerar SQL Data Sync som förväntat? Information om hur du övervakar aktivitet 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: