Co je Synchronizace dat SQL pro Azure?

Platí pro:Azure SQL Database

Synchronizace dat SQL je služba založená na službě Azure SQL Database, která umožňuje synchronizovat data, která vyberete obousměrně napříč více databázemi, a to jak místně, tak v cloudu.

Důležité

Synchronizace dat SQL Azure v současnosti nepodporuje službu Azure SQL Managed Instance ani Azure Synapse Analytics.

Přehled

Synchronizace dat vychází z konceptu skupiny synchronizace. Skupina synchronizace je skupina databází, které chcete synchronizovat.

Synchronizace dat používá k synchronizaci dat hvězdicovou topologii. Jednu z databází ve skupině synchronizace definujete jako databázi centra. Zbývající databáze jsou členské databáze. Synchronizace probíhá pouze mezi centrem a jednotlivými členy.

  • Databáze centra musí být Azure SQL Database.
  • Členské databáze můžou být buď databáze ve službě Azure SQL Database, nebo v instancích SQL Serveru.
  • Databáze metadat synchronizace obsahuje metadata a protokol pro Synchronizace dat. Databáze metadat synchronizace musí být Azure SQL Database umístěná ve stejné oblasti jako databáze centra. Databáze metadat synchronizace je vytvořená zákazníkem a vlastníkem zákazníka. Pro každou oblast a předplatné můžete mít jenom jednu databázi metadat synchronizace. Databázi metadat synchronizace nelze odstranit ani přejmenovat, pokud existují skupiny synchronizace nebo agenti synchronizace. Microsoft doporučuje vytvořit novou prázdnou databázi pro použití jako databázi metadat synchronizace. Synchronizace dat vytvoří v této databázi tabulky a spustí častou úlohu.

Poznámka:

Pokud používáte místní databázi jako členovou databázi, musíte nainstalovat a nakonfigurovat místního synchronizačního agenta.

Sync data between databases

Skupina synchronizace má následující vlastnosti:

  • Schéma synchronizace popisuje, která data se synchronizují.
  • Směr synchronizace může být obousměrný nebo může proudit pouze jedním směrem. To znamená, že směr synchronizace může být centrum pro člena, člena do centra nebo obojího.
  • Interval synchronizace popisuje, jak často dochází k synchronizaci.
  • Zásada řešení konfliktů je zásada na úrovni skupiny, kterou může centrum vyhrát nebo vyhrát člen.

Vhodné použití služby

Synchronizace dat je užitečné v případech, kdy je potřeba aktualizovat data napříč několika databázemi ve službě Azure SQL Database nebo SQL Serveru. Tady jsou hlavní případy použití pro Synchronizace dat:

  • Hybridní Synchronizace dat hronizace: Díky Synchronizace dat můžete udržovat data synchronizovaná mezi databázemi v SQL Serveru a Službě Azure SQL Database a umožnit tak hybridní aplikace. Tato funkce může lákat zákazníky, kteří uvažují o přechodu do cloudu a chtějí některé své aplikace umístit do Azure.
  • Distribuované aplikace: V mnoha případech je výhodné oddělit různé úlohy napříč různými databázemi. Pokud máte například velkou produkční databázi, ale na těchto datech potřebujete spustit také úlohu generování sestav nebo analýzy, je užitečné mít druhou databázi pro tuto extra úlohu. Tento přístup minimalizuje dopad na výkon vaší produkční úlohy. Tyto dvě databáze můžete synchronizovat pomocí Synchronizace dat.
  • Globálně distribuované aplikace: Mnoho firem zahrnuje několik oblastí a dokonce i několik zemí/oblastí. Pokud chcete minimalizovat latenci sítě, je nejlepší mít vaše data v oblasti blízko vás. Díky Synchronizace dat můžete snadno udržovat databáze v oblastech po celém světě synchronizované.

Synchronizace dat není upřednostňovaným řešením pro následující scénáře:

Scénář Některá doporučená řešení
Zotavení po havárii Geograficky redundantní zálohy Azure
Měřítko čtení Použití replik jen pro čtení k vyrovnávání zatížení úloh dotazů jen pro čtení
ETL (OLTP to OLAP) Azure Data Factory nebo SQL Server Integration Services
Migrace z SQL Serveru do Azure SQL Database Po dokončení migrace je ale možné použít Synchronizace dat SQL, aby se zajistilo, že se zdroj a cíl budou synchronizovat. Azure Database Migration Service

Jak to funguje

  • Sledování změn dat: Synchronizace dat sleduje změny pomocí triggerů vložení, aktualizace a odstranění. Změny se zaznamenávají v boční tabulce v uživatelské databázi. FUNKCE BULK INSERT se ve výchozím nastavení neaktivuje. Pokud není zadaný FIRE_TRIGGERS, nespustí se žádné triggery vložení. Přidejte možnost FIRE_TRIGGERS, aby Synchronizace dat tyto vložení mohly sledovat.
  • Synchronizace dat: Synchronizace dat je navržená v hvězdicovém modelu. Centrum se synchronizuje s každým členem jednotlivě. Změny z centra se stáhnou členu a pak se změny od člena nahrají do centra.
  • Řešení konfliktů: Synchronizace dat nabízí dvě možnosti řešení konfliktů, hvězdicové výhry nebo výhry členů.
    • Pokud vyberete hub wins, změny v centru vždy přepíšou změny člena.
    • Pokud vyberete člen vyhrát, změny v členu přepíšou změny v centru. Pokud existuje více než jeden člen, konečná hodnota závisí na tom, který člen se nejprve synchronizuje.

Porovnání s transakční replikací

Synchronizace dat Transakční replikace
Výhody – Podpora aktivní-aktivní
– Obousměrné mezi místním prostředím a službou Azure SQL Database
- Nižší latence
– Transakční konzistence
– Opakované použití stávající topologie po migraci
–Podpora služby Azure SQL Managed Instance
Nevýhody – Bez transakční konzistence
- Vyšší dopad na výkon
– Nejde publikovat ze služby Azure SQL Database
- Vysoké náklady na údržbu

Poznámka:

Privátní propojení Synchronizace dat SQL se liší od služby Azure Private Link.

Nová funkce privátního propojení umožňuje zvolit privátní koncový bod spravovaný službou pro vytvoření zabezpečeného připojení mezi synchronizační službou a databázemi člena/centra během procesu synchronizace dat. Privátní koncový bod spravovaný službou je privátní IP adresa v rámci konkrétní virtuální sítě a podsítě. V rámci Synchronizace dat je privátní koncový bod spravovaný službou vytvořen společností Microsoft a používá ho výhradně služba Synchronizace dat pro danou operaci synchronizace.

Před nastavením privátního propojení si přečtěte obecné požadavky na tuto funkci.

Private link for Data Sync

Poznámka:

Privátní koncový bod spravovaný službou musíte ručně schválit na stránce připojení privátního koncového bodu webu Azure Portal během nasazení skupiny synchronizace nebo pomocí PowerShellu.

Začínáme

Nastavení Synchronizace dat na webu Azure Portal

Nastavení Synchronizace dat pomocí PowerShellu

Nastavení Synchronizace dat pomocí rozhraní REST API

Projděte si osvědčené postupy pro Synchronizace dat

Něco se nepovedlo

Konzistence a výkon

Případná konzistence

Vzhledem k tomu, že Synchronizace dat je založená na triggeru, není zaručená transakční konzistence. Společnost Microsoft zaručuje, že všechny změny budou provedeny nakonec a že Synchronizace dat nezpůsobí ztrátu dat.

Dopad na výkon

Synchronizace dat ke sledování změn používá triggery vložení, aktualizace a odstranění. Vytvoří boční tabulky v uživatelské databázi pro sledování změn. Tyto aktivity sledování změn mají vliv na vaši úlohu databáze. V případě potřeby vyhodnoťte úroveň služby a upgradujte.

Zřizování a rušení zřizování během vytváření, aktualizace a odstranění skupiny synchronizace může mít vliv také na výkon databáze.

Požadavky a omezení

Obecné požadavky

  • Každá tabulka musí mít primární klíč. Neměňte hodnotu primárního klíče v žádném řádku. Pokud potřebujete změnit hodnotu primárního klíče, odstraňte řádek a znovu ho vytvořte s novou hodnotou primárního klíče.

Důležité

Změna hodnoty existujícího primárního klíče způsobí následující chybné chování:

  • Data mezi centrem a členem můžou být ztracena, i když synchronizace nehlásí žádný problém.
  • Synchronizace může selhat, protože tabulka sledování obsahuje neexistující řádek ze zdroje kvůli změně primárního klíče.
  • Izolace snímků musí být povolená pro členy synchronizace i centrum. Další informace najdete v tématu Izolace snímku na SQL Serveru.

  • Aby bylo možné použít privátní propojení Synchronizace dat, musí být členské i centrální databáze hostované v Azure (stejné nebo různé oblasti) ve stejném typu cloudu (například ve veřejném cloudu nebo v cloudu pro státní správu). Kromě toho musí být poskytovatelé prostředků zaregistrovaní pro předplatná, Microsoft.Network která hostují centrum a členské servery. Nakonec musíte privátní propojení ručně schválit pro Synchronizace dat během konfigurace synchronizace v části Připojení privátního koncového bodu na webu Azure Portal nebo prostřednictvím PowerShellu. Další informace o tom, jak schvalovat privátní propojení, najdete v tématu Nastavení Synchronizace dat SQL. Jakmile schválíte privátní koncový bod spravovaný službou, veškerá komunikace mezi synchronizační službou a databázemi člena/centra probíhá přes privátní propojení. Stávající skupiny synchronizace je možné aktualizovat, aby byla tato funkce povolená.

Obecná omezení

  • Tabulka nemůže obsahovat sloupec identity, který není primárním klíčem.
  • Primární klíč nemůže mít následující datové typy: sql_variant, binary, varbinary, image, xml.
  • Při použití následujících datových typů jako primárního klíče buďte opatrní, protože podporovaná přesnost je pouze na sekundu: time, datetime, datetime2, datetimeoffset.
  • Názvy objektů (databází, tabulek a sloupců) nesmí obsahovat následující tisknutelné znaky: tečka (.), levá hranatá závorka ([) a pravá hranatá závorka (]).
  • Název tabulky nemůže obsahovat tisknutelné znaky: ! " # $ % ' ( ) * + - ani mezeru.
  • Ověřování Microsoft Entra (dříve Azure Active Directory) se nepodporuje.
  • Pokud existují tabulky se stejným názvem, ale s odlišným schématem (například dbo.customers a sales.customers), lze do synchronizace přidat pouze jednu z tabulek.
  • Sloupce s datovými typy definovanými uživatelem se nepodporují.
  • Přesun serverů mezi různými předplatnými se nepodporuje.
  • Pokud se dva primární klíče liší jenom v případě (například Foo a foo), Synchronizace dat tento scénář nepodporuje.
  • Zkrácení tabulek není operace podporovaná Synchronizace dat (změny se nesledují).
  • Použití databáze Azure SQL Hyperscale jako databáze centra nebo metadat synchronizace se nepodporuje. Databáze Hyperscale však může být členskou databází v topologii Synchronizace dat.
  • Tabulky optimalizované pro paměť nejsou podporované.
  • Nedochází k automatické replikaci změn schématu. Je možné vytvořit vlastní řešení pro automatizaci replikace změn schématu.
  • Synchronizace dat podporuje pouze následující dvě vlastnosti indexu: Jedinečné, Clusterované/Ne clusterované. Jiné vlastnosti indexu, jako jsou IGNORE_DUP_KEY nebo predikát filtru WHERE, nejsou podporované a cílový index je zřízený bez těchto vlastností, i když má zdrojový index tyto vlastnosti nastavené.
  • Databázi elastických úloh Azure nejde použít jako databázi metadat Synchronizace dat SQL a naopak.
  • Synchronizace dat SQL nejsou podporované pro databáze registru.

Nepodporované datové typy

  • Filestream
  • SQL/CLR UDT
  • XMLSchemaCollection (podporováno XML)
  • Cursor, RowVersion, Timestamp, Hierarchyid

Nepodporované typy sloupců

Synchronizace dat nemůže synchronizovat sloupce generované jen pro čtení nebo systémem. Příklad:

  • Počítané sloupce.
  • Systémem generované sloupce pro dočasné tabulky.

Omezení dimenzí služby a databáze

Dimenze Omezení Alternativní řešení
Maximální počet skupin synchronizace, do které může každá databáze patřit. 5
Maximální počet koncových bodů v jedné skupině synchronizace 30
Maximální počet místních koncových bodů v jedné skupině synchronizace 5 Vytvoření několika skupin synchronizace
Názvy databází, tabulek, schémat a sloupců 50 znaků na název
Tabulky ve skupině synchronizace 500 Vytvoření několika skupin synchronizace
Sloupce v tabulce ve skupině synchronizace 1000
Velikost řádku dat v tabulce 24 Mb

Poznámka:

V jedné skupině synchronizace může být až 30 koncových bodů, pokud existuje jenom jedna skupina synchronizace. Pokud existuje více než jedna skupina synchronizace, celkový počet koncových bodů napříč všemi skupinami synchronizace nesmí překročit 30. Pokud databáze patří do více skupin synchronizace, počítá se jako několik koncových bodů, nikoli jedna.

Síťové požadavky

Poznámka:

Pokud používáte privátní propojení Synchronizace, tyto požadavky na síť se nevztahují.

Po vytvoření skupiny synchronizace se služba Synchronizace dat musí připojit k databázi centra. Při navazování skupiny synchronizace musí mít Azure SQL Server v nastavení Firewalls and virtual networks následující konfiguraci:

  • Odepřít přístup k veřejné síti musí být vypnutý.
  • Povolit službám a prostředkům Azure přístup k tomuto serveru musí být nastaveno na Ano nebo musíte vytvořit pravidla PROTOKOLU IP pro IP adresy používané službou Synchronizace dat.

Po vytvoření a zřízení skupiny synchronizace můžete tato nastavení zakázat. Agent synchronizace se připojuje přímo k databázi centra a můžete použít pravidla protokolu FIREWALL serveru nebo privátní koncové body, které agentovi umožní přístup k serveru centra.

Poznámka:

Pokud změníte nastavení schématu skupiny synchronizace, budete muset službě Synchronizace dat povolit přístup k serveru znovu, aby bylo možné znovu zřídit databázi centra.

Rezidence dat oblastí

Pokud synchronizujete data ve stejné oblasti, Synchronizace dat SQL neukládá a nezpracuje zákaznická data mimo tuto oblast, ve které je instance služby nasazená. Pokud synchronizujete data mezi různými oblastmi, Synchronizace dat SQL replikuje zákaznická data do spárovaných oblastí.

Nejčastější dotazy k Synchronizace dat SQL

Kolik stojí služba Synchronizace dat SQL?

Za samotnou službu Synchronizace dat SQL se neúčtují žádné poplatky. Stále ale shromáždíte poplatky za přenos dat za přesun dat do instance služby SQL Database a z instance služby SQL Database. Další informace najdete v tématu Poplatky za přenos dat.

Které oblasti podporují Synchronizace dat?

Synchronizace dat SQL je k dispozici ve všech oblastech.

Vyžaduje se účet služby SQL Database?

Ano. Abyste mohli hostovat databázi centra, musíte mít účet služby SQL Database.

Můžu použít Synchronizace dat k synchronizaci pouze mezi databázemi SQL Serveru?

Ne přímo. Mezi databázemi SQL Serveru můžete synchronizovat nepřímo, ale vytvořením databáze centra v Azure a následným přidáním místních databází do skupiny synchronizace.

Můžu nakonfigurovat Synchronizace dat tak, aby se synchronizovaly mezi databázemi ve službě Azure SQL Database, které patří do různých předplatných?

Ano. Můžete nakonfigurovat synchronizaci mezi databázemi, které patří do skupin prostředků vlastněných různými předplatnými, i když předplatná patří do různých tenantů.

  • Pokud předplatná patří do stejného tenanta a máte oprávnění ke všem předplatným, můžete skupinu synchronizace nakonfigurovat na webu Azure Portal.
  • V opačném případě musíte k přidání členů synchronizace použít PowerShell.

Můžu nastavit Synchronizace dat pro synchronizaci mezi databázemi ve službě SQL Database, které patří do různých cloudů (jako je veřejný cloud Azure a Azure provozovaný společností 21Vianet)?

Ano. Můžete nastavit synchronizaci mezi databázemi, které patří do různých cloudů. K přidání členů synchronizace, které patří do různých předplatných, musíte použít PowerShell.

Můžu použít Synchronizace dat k počátečním datům z produkční databáze do prázdné databáze a pak je synchronizovat?

Ano. Vytvořte schéma ručně v nové databázi skriptováním z původní databáze. Po vytvoření schématu přidejte tabulky do skupiny synchronizace, abyste zkopírovali data a synchronizovali je.

Mám použít Synchronizace dat SQL k zálohování a obnovení databází?

K vytvoření zálohy dat se nedoporučuje používat Synchronizace dat SQL. Nemůžete zálohovat a obnovovat k určitému bodu v čase, protože synchronizace Synchronizace dat SQL nejsou verze. Kromě toho Synchronizace dat SQL nezálohuje jiné objekty SQL, jako jsou uložené procedury, a nedělá ekvivalent operace obnovení rychle.

Jednu doporučenou techniku zálohování najdete v tématu Kopírování databáze ve službě Azure SQL Database.

Je možné Synchronizace dat synchronizovat šifrované tabulky a sloupce?

  • Pokud databáze používá funkci Always Encrypted, můžete synchronizovat pouze tabulky a sloupce, které nejsou šifrované. Šifrované sloupce nemůžete synchronizovat, protože Synchronizace dat nemůže dešifrovat data.
  • Pokud sloupec používá šifrování na úrovni sloupce (CLE), můžete sloupec synchronizovat, pokud je velikost řádku menší než maximální velikost 24 Mb. Synchronizace dat považuje sloupec zašifrovaný klíčem (CLE) jako s normálními binárními daty. Pokud chcete dešifrovat data u ostatních členů synchronizace, musíte mít stejný certifikát.

Podporuje se kolace v Synchronizace dat SQL?

Ano. Synchronizace dat SQL podporuje konfiguraci nastavení kolace v následujících scénářích:

  • Pokud vybrané tabulky schémat synchronizace ještě nejsou ve vaší databázi centra nebo člena, služba při nasazování skupiny synchronizace automaticky vytvoří odpovídající tabulky a sloupce s nastavením kolace vybraným v prázdných cílových databázích.
  • Pokud tabulky, které se mají synchronizovat, už existují v centrální i členské databázi, Synchronizace dat SQL vyžaduje, aby sloupce primárního klíče měly stejnou kolaci mezi centrálními a členskými databázemi, aby se skupina synchronizace úspěšně nasadila. U sloupců kromě sloupců s primárním klíčem neexistují žádná omezení kolace.

Podporuje se federace v Synchronizace dat SQL?

Kořenová databáze federace se dá používat ve službě Synchronizace dat SQL Bez jakýchkoli omezení. Koncový bod federované databáze nemůžete přidat do aktuální verze Synchronizace dat SQL.

Můžu pomocí Synchronizace dat synchronizovat data exportovaná z Dynamics 365 pomocí funkce Přineste si vlastní databázi (BYOD)?

Funkce Dynamics 365 Bring your own database umožňuje správcům exportovat entity dat z aplikace do vlastní databáze Microsoft Azure SQL. Synchronizace dat je možné použít k synchronizaci těchto dat do jiných databází, pokud se data exportují pomocí přírůstkového nabízení (úplné nabízení není podporováno) a aktivační události v cílové databázi jsou nastavené na ano.

Návody vytvořit Synchronizace dat ve skupině převzetí služeb při selhání pro podporu zotavení po havárii?

  • Pokud chcete zajistit, aby operace synchronizace dat v oblasti převzetí služeb při selhání byly v souladu s primární oblastí, musíte po převzetí služeb při selhání ručně znovu vytvořit skupinu synchronizace v oblasti převzetí služeb při selhání se stejným nastavením jako primární oblast.

Další kroky

Aktualizace schématu synchronizované databáze

Potřebujete aktualizovat schéma databáze ve skupině synchronizace? Nedochází k automatické replikaci změn schématu. Některá řešení najdete v následujících článcích:

Monitorování a odstraňování potíží

Dělá Synchronizace dat SQL podle očekávání? Pokud chcete monitorovat aktivitu a řešit problémy, projděte si následující články:

Další informace o databázi SQL Database služby Azure

Další informace o službě Azure SQL Database najdete v následujících článcích: