Transaktionsreplikering med Azure SQL Managed Instance (förhandsversion)

GÄLLER FÖR: Azure SQL Managed Instance

Transaktionsreplikering är en funktion i Azure SQL Managed Instance och SQL Server som gör att du kan replikera data från en tabell i Azure SQL Managed Instance eller en SQL Server-instans till tabeller som placeras på fjärrdatabaser. Med den här funktionen kan du synkronisera flera tabeller i olika databaser.

Transaktionsreplikering är för närvarande i offentlig förhandsversion för SQL Managed Instance.

Översikt

Du kan använda transaktionsreplikering för att skicka ändringar som gjorts i en Azure SQL Managed Instance för att:

Komponenter

Nyckelkomponenterna i transaktionsreplikering är Publisher, Distributör och Prenumerant, enligt följande bild:

replikering med SQL Database

Roll Azure SQL Database Hanterad Azure SQL-instans
Utgivare Inga Ja
Distributör Inga Ja
Pull-prenumerant Inga Ja
Push-prenumerant Ja Ja
     

Den Publisher publicerar ändringar som görs i vissa tabeller (artiklar) genom att skicka uppdateringarna till distributören. Utgivaren kan vara en Azure SQL Managed Instance eller en SQL Server instans.

Distributören samlar in ändringar i artiklarna från en Publisher distribuerar dem till prenumeranterna. Distributören kan vara antingen en Azure SQL Managed Instance eller en SQL Server-instans (vilken version som helst så länge den är lika med eller högre än den Publisher versionen).

Prenumeranten får ändringar som gjorts på Publisher. En SQL Server-instans och Azure SQL Managed Instance kan både vara push- och pull-prenumeranter, även om en pull-prenumeration inte stöds när distributören är en hanterad Azure SQL-instans och prenumeranten inte stöds. En databas i Azure SQL Database bara vara push-prenumerant.

Azure SQL Managed Instance har stöd för att vara prenumerant från följande versioner av SQL Server:

  • SQL Server 2016 och senare

  • SQL Server 2014 RTM CU10 (12.0.4427.24) eller SP1 CU3 (12.0.2556.4)

  • SQL Server 2012 SP2 CU8 (11.0.5634.1) eller SP3 (11.0.6020.0) eller SP4 (11.0.7001.0)

    Anteckning

    • För andra versioner av SQL Server som inte stöder publicering till objekt i Azure är det möjligt att använda metoden för att publicera om data för att flytta data till nyare versioner av SQL Server.
    • Försök att konfigurera replikering med en äldre version kan resultera i felnummer MSSQL_REPL20084 (processen kunde inte ansluta till prenumeranten.) och MSSQ_REPL40532 (Det går inte att öppna servern som begärdes vid <name> inloggningen. Inloggningen misslyckades.)

Typer av replikering

Det finns olika typer av replikering:

Replikering Azure SQL Database Hanterad Azure SQL-instans
Standardtransaktionstransaktion Ja (endast som prenumerant) Yes
Ögonblicksbild Ja (endast som prenumerant) Yes
Slå samman replikering Inga Inga
Peer-to-peer Inga Inga
Dubbelriktad Inga Ja
Uppdatbara prenumerationer Inga Inga
     

Supportmatris

Matrisen för stöd för transaktionsreplikering för Azure SQL Managed Instance är samma som den för SQL Server.

Utgivare Distributör Abonnent
SQL Server 2019 SQL Server 2019 SQL Server 2019
SQL Server 2017
SQL Server 2016
SQL Server 2017 SQL Server 2019
SQL Server 2017
SQL Server 2019
SQL Server 2017
SQL Server 2016
SQL Server 2014
SQL Server 2016 SQL Server 2019
SQL Server 2017
SQL Server 2016
SQL Server 2019
SQL Server 2017
SQL Server 2016
SQL Server 2014
SQL Server 2012
SQL Server 2014 SQL Server 2019
SQL Server 2017
SQL Server 2016
SQL Server 2014
SQL Server 2017
SQL Server 2016
SQL Server 2014
SQL Server 2012
SQL Server 2008 R2
SQL Server 2008
SQL Server 2012 SQL Server 2019
SQL Server 2017
SQL Server 2016
SQL Server 2014
SQL Server 2012
SQL Server 2016
SQL Server 2014
SQL Server 2012
SQL Server 2008 R2
SQL Server 2008
SQL Server 2008 R2
SQL Server 2008
SQL Server 2019
SQL Server 2017
SQL Server 2016
SQL Server 2014
SQL Server 2012
SQL Server 2008 R2
SQL Server 2008
SQL Server 2014
SQL Server 2012
SQL Server 2008 R2
SQL Server 2008
     

När du ska använda detta

Transaktionsreplikering är användbart i följande scenarier:

  • Publicera ändringar som görs i en eller flera tabeller i en databas och distribuera dem till en eller flera databaser i en SQL Server-instans eller Azure SQL Database som prenumererar på ändringarna.
  • Se till att flera distribuerade databaser är synkroniserade.
  • Migrera databaser från en SQL Server-instans eller Azure SQL Managed Instance till en annan databas genom att kontinuerligt publicera ändringarna.

Jämför Data Sync med transaktionsreplikering

Kategori 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
Nackdelar – Ingen transaktionskonsekvens
– Högre prestandapåverkan
– Det går inte att publicera från Azure SQL Database
– Höga underhållskostnader

Vanliga konfigurationer

I allmänhet måste utgivaren och distributören antingen finnas i molnet eller lokalt. Följande konfigurationer stöds:

Publisher lokal distributör på SQL Managed Instance

Enskild instans som Publisher and Distributor

Publisher och distributören konfigureras inom en enda SQL Managed Instance och distribuerar ändringar till en annan SQL Managed Instance, SQL Database eller SQL Server-instans.

Publisher med fjärrdistributör på SQL Managed Instance

I den här konfigurationen publicerar en hanterad instans ändringar till en distributör som placerats på en annan SQL Managed Instance som kan hantera många SQL-hanterade källinstanser och distribuera ändringar till ett eller flera mål på Azure SQL Database, Azure SQL Managed Instance eller SQL Server.

Separata instanser för Publisher och Distributor

Publisher och distributören konfigureras på två hanterade instanser. Det finns vissa begränsningar med den här konfigurationen:

  • Båda hanterade instanserna finns i samma virtuella nätverk.
  • Båda hanterade instanserna finns på samma plats.

Lokal distribution Publisher fjärrprenumerant

Azure SQL Database som prenumerant

I den här konfigurationen är en databas i Azure SQL Database eller Azure SQL Managed Instance en prenumerant. Den här konfigurationen stöder migrering från lokal plats till Azure. Om en prenumerant är en databas Azure SQL Database måste den vara i push-läge.

Krav

  • Använd SQL autentisering för anslutning mellan replikeringsdeltagare.
  • Använd en Azure Storage-kontoresurs för arbetskatalogen som används av replikeringen.
  • Öppna TCP utgående port 445 i undernätets säkerhetsregler för att få åtkomst till Azure-filresursen.
  • Öppna TCP:s utgående port 1433 när den SQL Managed Instance är Publisher/Distributor och prenumeranten inte är det. Du kan också behöva ändra säkerhetsregeln för utgående SQL NSG för den hanterade instansen för allow_linkedserver_outbound port 1433-måltjänsttaggen från till virtualnetwork internet .
  • Placera både utgivaren och distributören i molnet, eller både och lokalt.
  • Konfigurera VPN-peering mellan de virtuella nätverken med replikeringsdeltagare om de virtuella nätverken är olika.

Anteckning

Du kan stöta på fel 53 när du ansluter till en Azure Storage-fil om den utgående nätverkssäkerhetsgruppens (NSG) port 445 blockeras när distributören är en Azure SQL Managed Instance-databas och prenumeranten är lokal. Uppdatera den virtuella nätverkets NSG för att lösa problemet.

Med redundansgrupper

Om en utgivare eller distributör SQL Managed Instance finns i en redundansgrupp måsteadministratören för SQL Managed Instance rensa alla publiceringar på den gamla primära instansen och konfigurera om dem på den nya primära instansen efter en redundans. Följande aktiviteter behövs i det här scenariot:

  1. Stoppa alla replikeringsjobb som körs på databasen, om det finns några.

  2. Ta bort prenumerationsmetadata från utgivaren genom att köra följande skript på utgivardatabasen:

    EXEC sp_dropsubscription @publication='<name of publication>', @article='all',@subscriber='<name of subscriber>'
    
  3. Ta bort prenumerationsmetadata från prenumeranten. Kör följande skript på prenumerationsdatabasen på prenumeranten SQL Managed Instance:

    EXEC sp_subscription_cleanup
       @publisher = N'<full DNS of publisher, e.g. example.ac2d23028af5.database.windows.net>',
       @publisher_db = N'<publisher database>',
       @publication = N'<name of publication>';
    
  4. Ta bort alla replikeringsobjekt från utgivaren med tvång genom att köra följande skript i den publicerade databasen:

    EXEC sp_removedbreplication
    
  5. Lämna den gamla distributören med tvång från den ursprungliga primära SQL Managed Instance (om den kunde gå över till en gammal primär som tidigare hade en distributör). Kör följande skript på huvuddatabasen i den gamla distributören SQL Managed Instance:

    EXEC sp_dropdistributor 1,1
    

Om en prenumerant SQL Managed Instance finns i en redundansgrupp ska publiceringen konfigureras för att ansluta till lyssnarslutpunkten för redundansgruppen för den hanterade prenumerantinstansen. I händelse av redundans beror efterföljande åtgärd av administratören för den hanterade instansen på vilken typ av redundans som inträffade:

  • Vid en redundans utan dataförlust fortsätter replikeringen att fungera efter redundans.
  • Vid en redundans med dataförlust fungerar replikering också. De förlorade ändringarna replikeras igen.
  • Vid en redundans med dataförlust, men dataförlusten ligger utanför kvarhållningsperioden för distributionsdatabasen, måste administratören för SQL Managed Instance initiera om prenumerationsdatabasen.

Nästa steg

Mer information om hur du konfigurerar transaktionsreplikering finns i följande självstudier:

Se även