Transakční replikace se službou Azure SQL Managed Instance (Preview)

platí pro: spravovaná Instance Azure SQL

Transakční replikace je funkce služby Azure SQL Managed Instance a SQL Server, která umožňuje replikovat data z tabulky ve službě Azure SQL Managed Instance nebo instance SQL Server do tabulek umístěných ve vzdálených databázích. Tato funkce umožňuje synchronizovat více tabulek v různých databázích.

Transakční replikace je v současné době ve verzi Public Preview SQL spravované instance.

Přehled

Transakční replikaci můžete použít k nabízení změn provedených ve službě Azure SQL Managed Instance a provádět tyto operace:

  • Databáze SQL Server – místní nebo na virtuálním počítači Azure

  • Databáze v Azure SQL Database

  • Instance databáze ve službě Azure SQL Managed Instance

    Poznámka

    Pokud chcete používat všechny funkce služby Azure SQL Managed Instance, musíte používat nejnovější verze nástrojů SQL Server Management Studio (SSMS) a SQL Server Data Tools (SSDT).

Komponenty

Klíčové komponenty transakční replikace jsou Publisher, distributor a odběratel, jak je znázorněno na následujícím obrázku:

replikace s SQL Database

Role Azure SQL Database Spravovaná instance Azure SQL
Publisher No Yes
Distributor No Yes
Vyžádat odběratele No Yes
Push Subscriber Yes Yes
     

Tento Publisher publikuje změny provedené u některých tabulek (článků) odesláním aktualizací distributorovi. Vydavatelem může být Azure SQL Managed Instance nebo SQL Server instance.

Distributor shromažďuje změny v článcích od Publisher a distribuuje je odběratelům. Distributorem může být buď spravovaná instance Azure SQL, nebo instance SQL Server (jakákoli verze, pokud je stejná nebo vyšší než Publisher verze).

Odběratel obdrží změny provedené na Publisher. Instance SQL Server i spravovaná instance Azure SQL mohou být předplatitelé nabízených oznámení i předplatitelé, i když se předplatné pro vyžádané aktualizace nepodporuje, pokud distributor je spravovaná instance Azure SQL a předplatitel ne. Databáze v Azure SQL Database může být jenom odběratelem nabízených oznámení.

Spravovaná instance Azure SQL může podporovat, že je odběratelem z následujících verzí SQL Server:

  • SQL Server 2016 a novější

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

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

    Poznámka

    • U ostatních verzí SQL Server, které nepodporují publikování do objektů v Azure, je možné použít metodu opětovného publikování dat k přesunu dat do novějších verzí SQL Server.
    • Pokus o konfiguraci replikace pomocí starší verze může vést k chybě s číslem MSSQL_REPL20084 (Proces se nemohl připojit k odběrateli)) a MSSQ_REPL40532 (server požadovaný pro přihlášení <name> nelze otevřít. Přihlášení se nezdařilo.)

Typy replikace

Existují různé typy replikace:

Replikace Azure SQL Database Spravovaná instance Azure SQL
Standardní transakční Ano (jenom jako odběratel) Yes
Snímek Ano (jenom jako odběratel) Yes
Slučovací replikace No No
Peer-to-peer No No
Obousměrné No Yes
Aktualizovatelná předplatná No No
     

Matice podpory

Matice podpory transakční replikace pro Azure SQL Managed Instance je stejná jako pro SQL Server.

Publisher Distributor Odběratel
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
     

Kdy je použít

Transakční replikace je užitečná v následujících scénářích:

  • publikování změn provedených v jedné nebo více tabulkách v databázi a jejich distribuce do jedné nebo více databází v instanci SQL Server nebo v Azure SQL Database, která předplatila pro změny.
  • Udržujte několik distribuovaných databází v synchronizovaném stavu.
  • migrujte databáze z jedné instance SQL Server nebo Azure SQL Managed instance do jiné databáze tím, že se změny průběžně publikují.

porovnání Synchronizace dat s transakční replikací

Kategorie Synchronizace dat Transakční replikace
Výhody – Aktivní – aktivní podpora
– Obousměrné mezi místními a Azure SQL Database
– Nižší latence
– Transakční konzistence
-Opětovné použití existující topologie po migraci
Nevýhody -Žádná transakční konzistence
– Vyšší dopad na výkon
-Nelze publikovat z Azure SQL Database
– Náklady vysoké údržby

Běžné konfigurace

Obecně platí, že vydavatel a distributor musí být v cloudu i v místním prostředí. Podporují se tyto konfigurace:

Publisher s místním distributorem na SQL Managed Instance

jedna instance jako Publisher a Distributor

Publisher a distributor jsou nakonfigurovány v rámci jedné SQL spravované instance a distribuují změny do jiné SQL spravované instance, SQL Database nebo SQL Server instance.

Publisher se vzdáleným distributorem v SQL Managed Instance

v této konfiguraci publikuje jedna spravovaná instance změny distributora, který je umístěný na jiné SQL spravované instanci, která může obsluhovat mnoho zdrojových SQL spravovaných instancí a distribuovat změny do jednoho nebo více cílů na Azure SQL Database, Azure SQL managed instance nebo SQL Server.

samostatné instance pro Publisher a distributora

Publisher a distributor jsou nakonfigurovány na dvou spravovaných instancích. Tato konfigurace má několik omezení:

  • Obě spravované instance jsou ve stejné virtuální síti.
  • Obě spravované instance jsou ve stejném umístění.

místní Publisher/Distributor se vzdáleným předplatitelem

Azure SQL Database jako předplatitel

v této konfiguraci je databáze v Azure SQL Database nebo ve službě Azure SQL Managed Instance předplatitelem. Tato konfigurace podporuje migraci z místního prostředí do Azure. pokud je odběratel databáze v Azure SQL Database, musí být v režimu push.

Požadavky

  • pro připojení mezi účastníky replikace použijte ověřování SQL.
  • pro pracovní adresář používaný při replikaci použijte sdílenou složku Azure Storage účtu.
  • Pro přístup ke sdílené složce Azure otevřete odchozí port TCP 445 v pravidlech zabezpečení podsítě.
  • pokud je SQL spravovaná Instance Publisher/Distributor a předplatitel není, otevřete odchozí port TCP 1433. je také možné, že budete muset SQL změnit pravidlo pro odchozí zabezpečení NSG spravované Instance pro allow_linkedserver_outbound port 1433 pro cílový tag služby z virtualnetwork na internet .
  • Umístěte vydavatele i distributora do cloudu nebo do místního prostředí.
  • Nakonfigurujte partnerský vztah VPN mezi virtuálními sítěmi účastníků replikace, pokud se virtuální sítě liší.

Poznámka

při připojování k souboru Azure Storage může dojít k chybě 53, pokud je NSG port 445 pro skupinu zabezpečení sítě (), když je distributorem databáze spravované Instance Azure SQL a předplatitelem je místní. Pokud chcete tento problém vyřešit, aktualizujte NSG virtuální sítě.

Se skupinami převzetí služeb při selhání

pokud je vydavatel nebo distributora SQL spravovaná instance ve skupině převzetí služeb při selhání, musí správce spravované instance SQL vyčistit všechny publikace na staré primární primární a po převzetí služeb při selhání je znovu nakonfigurovat na nové primární situaci. V tomto scénáři jsou potřeba následující aktivity:

  1. Zastavte všechny úlohy replikace běžící v databázi, pokud existují.

  2. Z vydavatele vyřaďte metadata odběru spuštěním následujícího skriptu v databázi vydavatele:

    EXEC sp_dropsubscription @publication='<name of publication>', @article='all',@subscriber='<name of subscriber>'
    
  3. Odkládací metadata odběru od odběratele. spusťte následující skript v databázi odběrů na spravované instanci předplatitele SQL:

    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. Vynuceně vyřaďte všechny replikační objekty od vydavatele spuštěním následujícího skriptu v publikované databázi:

    EXEC sp_removedbreplication
    
  5. nuceně odstranit starého distributora z původní primární SQL spravované Instance (pokud dojde k selhání back-over staré primární služby, která se použila k distributorovi). spusťte následující skript v hlavní databázi v původním distributorovi SQL Managed Instance:

    EXEC sp_dropdistributor 1,1
    

pokud je předplatitelská SQL spravovaná Instance ve skupině převzetí služeb při selhání, měla by se tato publikace nakonfigurovat pro připojení ke koncovému bodu naslouchacího procesu skupiny pro předplatitele pro spravovanou instanci odběratele. V případě převzetí služeb při selhání závisí následná akce správce spravované instance na typu převzetí služeb při selhání, ke kterému došlo:

  • V případě převzetí služeb při selhání bez ztráty dat bude replikace po převzetí služeb při selhání pokračovat v práci.
  • V případě převzetí služeb při selhání se ztrátou dat bude replikace fungovat také. Bude znovu replikován ztracené změny.
  • v případě převzetí služeb při selhání se ztrátou dat, ale ztráta dat je mimo dobu uchování distribuční databáze, bude muset správce spravované Instance SQL znovu inicializovat databázi odběrů.

Další kroky

Další informace o konfiguraci transakční replikace najdete v následujících kurzech:

Viz také