Sdílet prostřednictvím


Replikace snímků

platí pro:SQL Serverazure SQL Managed Instance

Replikace snímků distribuuje data přesně tak, jak se zobrazují v určitém okamžiku, a nemonitoruje aktualizace dat. Při synchronizaci se vygeneruje a odešle celý snímek odběratelům.

Poznámka:

Replikaci snímků lze použít samostatně, ale proces snímku (který vytvoří kopii všech objektů a dat určených publikací) se také běžně používá k poskytnutí počáteční sady dat a databázových objektů pro transakční a slučovací publikace.

Použití samotné replikace snímků je nejvhodnější v případě, že platí jeden nebo více následujících scénářů:

  • Data se mění zřídka.
  • Kopie dat, které jsou zastaralé vzhledem k Publisheru po určitou dobu.
  • Replikace malých objemů dat
  • Během krátkého časového období dochází k velkému objemu změn.

Replikace snímků je nejvhodnější, pokud jsou změny dat podstatné, ale občasné. Pokud například prodejní organizace udržuje ceník produktů a ceny se aktualizují současně jednou nebo dvakrát ročně, měli byste po změně replikovat celý snímek dat. Vzhledem k určitým typům dat můžou být vhodné i častější snímky. Pokud je například v Publisheru během dne aktualizována relativně malá tabulka, ale je přijatelná určitá latence, změny se dají doručovat v noci jako snímek.

Replikace snímků má u Publisheru nižší průběžnou režii než transakční replikaci, protože přírůstkové změny se nesledují. Pokud je ale replikovaná datová sada velká, vyžaduje k vygenerování a použití snímku dodatečné prostředky. Při vyhodnocování toho, jestli se má využít replikace snímků, zvažte velikost celé sady dat a četnost změn dat.

Jak funguje replikace snímků

Ve výchozím nastavení všechny tři typy replikace používají snímek k inicializaci odběratelů. Agent snímků SQL Serveru vždy generuje soubory snímků, ale agent, který doručuje soubory, se liší v závislosti na typu používané replikace. Replikace snímků a transakční replikace k doručování souborů používají distribučního agenta, zatímco slučovací replikace používá agenta sloučení SQL Serveru. Agent snímků běží na distributoru. Distribuční agent a slučovací agent běží na distributoru pro nabízená předplatná nebo u odběratelů pro odběry vyžádaných změn.

Snímky lze vygenerovat a použít buď okamžitě po vytvoření předplatného, nebo podle plánu nastaveného v době vytvoření publikace. Snapshot Agent připraví snímkové soubory obsahující schéma a data publikovaných tabulek a databázových objektů, uloží soubory do složky snímků pro Publisher a zaznamenává informace o sledování v distribuční databázi distributora. Při konfiguraci distributora zadáte výchozí složku snímků, ale můžete místo výchozího nastavení zadat alternativní umístění publikace.

Kromě standardního procesu snímku popsaného v tomto článku se pro sloučení publikací s parametrizovanými filtry používá proces dvoudílného snímku.

Následující obrázek znázorňuje hlavní komponenty replikace snímků.

Snímek obrazovky s komponentami replikace snímků a tokem dat

Konfigurace šifrování TLS 1.3

SQL Server 2025 (17.x) zavádí podporu TDS 8.0 pro replikaci snímků, která zahrnuje:

  • Konfigurace agentů replikace pro použití šifrování TLS 1.3 mezi instancemi SQL Serveru 2025 (17.x) a také mezi SQL Serverem 2025 (17.x) a spravovanou instancí Azure SQL.
  • Výchozí šifrování komunikace mezi instancemi propojeného serveru mezi instancemi SQL Serveru 2025 (17.x) v topologii replikace. Odkazované servery v SYSTÉMU SQL Server 2025 (17.x) používají ovladač OLE DB v19, který ve výchozím nastavení šifrování Encrypt=Mandatory používá.

Agent snímků

Při slučovací replikaci se při každém spuštění agenta snímků vygeneruje snímek. Při transakční replikaci závisí generování snímků na nastavení vlastnosti immediate_syncpublikace . Pokud je vlastnost nastavená na true (výchozí při použití Průvodce vytvořením nové publikace), snímek se vygeneruje při každém spuštění agenta snímků a dá se použít pro odběratele kdykoli. Pokud je vlastnost nastavena na false (výchozí při použití sp_addpublication), snímek se vygeneruje pouze v případě, že bylo od posledního spuštění agenta snímků přidáno nové předplatné; Předplatitelé musí počkat na dokončení agenta snímků, aby se mohli synchronizovat.

Agent snímků provádí následující kroky:

  1. Vytvoří připojení z distributora k Publisheru a v případě potřeby převezme zámky u publikovaných tabulek:

    • U slučovacích publikací nezachytá agent snímků žádné zámky.

    • U transakčních publikací ve výchozím nastavení agent snímků zamkne zámky pouze během počáteční fáze generování snímku.

    • U snímků publikací se zámky uchovávají během celého procesu generování snímků.

  2. Zapíše kopii schématu tabulky pro každý článek do .sch souboru. Další soubory skriptů se generují, pokud jsou publikovány další databázové objekty, jako jsou indexy, omezení, uložené procedury, zobrazení, uživatelem definované funkce atd.

  3. Zkopíruje data z publikované tabulky v Publisheru a zapíše data do složky snímku. Snímek se vygeneruje jako sada souborů BCP (Bulk Copy Program).

  4. V případě snímků a transakčních publikací připojí agent snímků řádky k MSrepl_commandsMSrepl_transactions tabulkám v distribuční databázi. Položky v MSrepl_commands tabulce jsou příkazy označující umístění .sch a .bcp soubory, všechny ostatní soubory snímků a odkazy na všechny skripty před snímky nebo po vytvoření snímku. Položky v MSrepl_transactions tabulce jsou příkazy relevantní pro synchronizaci odběratele.

    U slučovacích publikací provádí agent snímků další kroky.

  5. Uvolní všechny zámky u publikovaných tabulek.

Během generování snímků nemůžete provádět změny schématu u publikovaných tabulek. Po vygenerování souborů snímků je můžete zobrazit ve složce snímků pomocí Průzkumníka Windows.

Agent distribuce a sloučení agenta

U publikací snímků se při každém spuštění distribučního agenta pro publikaci přesune nový snímek do každého odběratele, který:

  • ještě není synchronizovaný,
  • je označena k opětovné inicializaci nebo
  • obsahuje nové články.

V případě snímkové a transakční replikace provádí distribuční agent následující kroky:

  1. Vytvoří připojení k distributoru.

  2. MSrepl_commands MSrepl_transactions Prozkoumá tabulky v distribuční databázi distributora. Agent přečte umístění souborů snímků z první tabulky a synchronizačních příkazů odběratele z obou tabulek.

  3. Použije schéma a příkazy na databázi předplatného.

U nefiltrované publikace replikace sloučení provede agent sloučení následující kroky:

  1. Vytvoří připojení k Publisheru.

  2. sysmergeschemachange Prozkoumá tabulku v Publisheru a určí, jestli se má u odběratele použít nový snímek.

  3. Pokud je k dispozici nový snímek, agent sloučení se vztahuje na databázi předplatného soubory snímků ze zadaného umístění sysmergeschemachange.