Co je Synchronizace dat SQL Azure?
Synchronizace dat SQL je služba postavená na Azure SQL Database, která umožňuje synchronizovat data, která vyberete obousměrně, napříč několika databázemi místně i v cloudu.
Důležité
Synchronizace dat SQL Azure v tuto chvíli nepodporuje službu Azure SQL Managed Instance.
Přehled
Synchronizace dat vychází z konceptu skupiny synchronizace. Skupina synchronizace je skupina databází, které chcete synchronizovat.
Synchronizace dat data používá topologii centra a paprsku. Jednu z databází ve skupině synchronizace definujete jako databázi centra. Zbývajícími databázemi 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 mohou být buď databáze v Azure SQL Database, nebo v instancích SQL Server.
- 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ěná zákazníkem. Pro každou oblast a předplatné můžete mít jenom jednu databázi metadat synchronizace. Databázi metadat synchronizace není možné odstranit ani přejmenovat, pokud existují skupiny synchronizace nebo agenti synchronizace. Microsoft doporučuje vytvořit novou prázdnou databázi, která se použije jako databáze metadat synchronizace. Synchronizace dat vytvoří v této databázi tabulky a spustí častou úlohu.
Poznámka
Pokud jako členkou databázi používáte místní databázi, musíte nainstalovat a nakonfigurovat místního agenta synchronizace.

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 v jednom směru. To znamená, že směr synchronizace může být od centra ke členu, člen do centra nebo obojí.
- Interval synchronizace popisuje, jak často dochází k synchronizaci.
- Zásady řešení konfliktů jsou zásady na úrovni skupiny, které mohou být výher centra nebo člena.
Kdy je použít
Synchronizace dat je užitečná v případech, kdy je potřeba aktualizovat data napříč několika databázemi v Azure SQL Database nebo SQL Server. Tady jsou hlavní případy použití Synchronizace dat:
- Hybridní synchronizace dat: Díky Synchronizace dat můžete udržovat data synchronizovaná mezi databázemi v SQL Server a Azure SQL Database a povolit hybridní aplikace. Tato možnost se může oslovovat pro zákazníky, kteří zvažují přesun 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 mezi různými databázemi. Pokud máte například velkou produkční databázi, ale potřebujete také na tato data spustit úlohy vytváření sestav nebo analýzy, je užitečné mít druhou databázi pro tuto další úlohu. Tento přístup minimalizuje dopad na výkon produkčních úloh. Tyto dvě Synchronizace dat můžete udržovat synchronizované.
- Globálně distribuované aplikace: Mnoho firem pokrývá několik oblastí a dokonce i několik zemí nebo oblastí. Pokud chcete minimalizovat latenci sítě, je nejlepší mít data v oblasti blízko vás. Díky Synchronizace dat můžete snadno udržovat synchronizované databáze v oblastech po celém světě.
Synchronizace dat není upřednostňovaným řešením pro následující scénáře:
| Scenario | Některá doporučená řešení |
|---|---|
| Zotavení po havárii | Geograficky redundantní zálohy Azure |
| Škálování čtení | Použití replik jen pro čtení k vyrovnávání zatížení úloh dotazů jen pro čtení (Preview) |
| ETL (OLTP do OLAP) | Azure Data Factory nebo SQL Server Integration Services |
| Migrace z SQL Server na Azure SQL Database. Po Synchronizace dat SQL ale můžete použít k zajištění synchronizace zdroje a cíle. | 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 postranní tabulce v uživatelské databázi. Mějte na BULK INSERT, že ve výchozím nastavení se nespouštějí triggery. Pokud FIRE_TRIGGERS nezadáte, nespouštějí se žádné triggery vložení. Přidejte FIRE_TRIGGERS, aby Synchronizace dat mohli tato vložení sledovat.
- Synchronizace dat: Synchronizace dat je navržená v modelu s centrem a paprskem. Centrum se synchronizuje s každým členem samostatně. Změny z centra se stáhnou do člena a pak se změny člena nahrají do centra.
- Řešení konfliktů: Synchronizace dat poskytuje dvě možnosti pro řešení konfliktů: hub WINS nebo member wins.
- Pokud vyberete Hub wins (Centrum vyhrává), změny v centru vždy přepíší změny v členu.
- Pokud vyberete člen wins, změny v členu přepíší změny v centru. Pokud existuje více než jeden člen, konečná hodnota závisí na tom, který člen se synchronizuje jako první.
Porovnání s transakční replikací
| Synchronizace dat | Transakční replikace | |
|---|---|---|
| Výhody | – Podpora aktivní-aktivní – Obousměrný provoz mezi místním prostředím a Azure SQL Database |
– Nižší latence – Transakční konzistence – Opětovné použití existující topologie po migraci –Azure SQL Managed Instance |
| Nevýhody | – Žádná transakční konzistence – Vyšší dopad na výkon |
– Nelze publikovat z Azure SQL Database – Vysoké náklady na údržbu |
Private Link pro Synchronizace dat
Nová funkce privátního propojení umožňuje zvolit privátní koncový bod spravovaný službou a vytvořit zabezpečené připojení mezi synchronizační službou a databázemi členů nebo center 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 Synchronizace dat privátní koncový bod spravovaný službou vytváří Microsoft a používá ho výhradně Synchronizace dat pro danou operaci synchronizace. Před nastavením privátního propojení si přečtěte obecné požadavky na funkci.

Poznámka
Privátní koncový bod spravovaný službou musíte ručně schválit na stránce Připojení privátních koncových bodů v Azure Portal skupiny synchronizace nebo pomocí PowerShellu.
Začínáme
Nastavení Synchronizace dat v Azure Portal
- Nastavení synchronizace dat SQL v Azure
- Data Sync Agent – Data Sync Agent pro Synchronizace dat SQL Azure
Nastavení Synchronizace dat pomocí PowerShellu
- Použití PowerShellu k synchronizaci mezi několika databázemi v Azure SQL Database
- Použití PowerShellu k synchronizaci mezi databází ve Azure SQL Database a databázemi v SQL Server instanci
Nastavení Synchronizace dat s REST API
Kontrola osvědčených postupů pro Synchronizace dat
Něco se pokazilo
Konzistence a výkon
Případná konzistence
Vzhledem Synchronizace dat, že je založený na aktivační události, není zaručena transakční konzistence. Společnost Microsoft zaručuje, že všechny změny se pro Synchronizace dat a že 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í. V uživatelské databázi se vytvoří boční tabulky pro sledování změn. Tyto aktivity sledování změn mají vliv na vaše databázové úlohy. Vyhodnoťte úroveň služby a v případě potřeby upgradujte.
Zřizování a zrušení zřizování během vytváření, aktualizace a odstraňování skupiny synchronizace může také ovlivnit 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 na žá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 bude mít za následek následující chybné chování:
- Data mezi centrem a členem mohou být ztracena, i když synchronizace nenahlásit žádný problém.
- Synchronizace může selhat, protože sledovací tabulka obsahuje neexistující řádek ze zdroje kvůli změně primárního klíče.
Izolace snímku 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žívat privátní propojení, musí být členské Synchronizace dat databáze centra hostované v Azure (stejné nebo jiné oblasti) ve stejném typu cloudu (např. ve veřejném cloudu nebo v cloudu pro státní správu). Aby bylo možné používat službu Private Link, musí být poskytovatelé prostředků Microsoft.Network zaregistrovaní pro předplatná, která hostují centrum a členské servery. Nakonec musíte privátní propojení pro Synchronizace dat ručně schválit během konfigurace synchronizace v části Připojení privátních koncových bodů v Azure Portal nebo prostřednictvím PowerShellu. Další podrobnosti o schválení privátního propojení najdete v tématu Nastavení Synchronizace dat SQL. Po schválení privátního koncového bodu spravovaného službou dojde k veškeré komunikaci mezi synchronizační službou a databázemi členů a center přes privátní propojení. Stávající skupiny synchronizace je možné aktualizovat, aby tato funkce byla povolená.
Obecná omezení
- Tabulka nemůže mít sloupec identity, který není primárním klíčem.
- Primární klíč nemůže mít následující datové typy: sql_variant, binární, varbinary, image, xml.
- Buďte opatrní, když jako primární klíč použijete následující datové typy, protože podporovaná přesnost je pouze druhá: time, datetime, datetime2, datetimeoffset.
- Názvy objektů (databáze, tabulky a sloupce) nesmí obsahovat tisknutelné znaky tečky (.), levou hranatou závorku ([) ani pravou hranatou závorku (]).
- Název tabulky nesmí obsahovat tisknutelné znaky: ! " # $ % ' ( ) * + - mezera
- Azure Active Directory ověřování se nepodporuje.
- Pokud existují tabulky se stejným názvem, ale s jiným schématem (například dbo.customers a sales.customers), je možné do synchronizace přidat jenom jednu z tabulek.
- Sloupce s User-Defined datovými typy se nepodporují.
- Přesun serverů mezi různými předplatným se nepodporuje.
- Pokud se dva primární klíče liší pouze v případě (např. Foo a foo), Synchronizace dat tento scénář nepodporuje.
- Zkrácení tabulek není operace podporovaná Synchronizace dat (změny se nebudou sledovat).
- Databáze Hyperscale se nepodporují.
- Tabulky optimalizované pro paměť se nepodporují.
Nepodporované datové typy
- Filestream
- SQL/CLR UDT
- XMLSchemaCollection (podporováno XML)
- Cursor, RowVersion, Timestamp, Hierarchyid
Nepodporované typy sloupců
Synchronizace dat synchronizovat sloupce jen pro čtení nebo generované systémem. Například:
- Vypočítané sloupce.
- Systémem generované sloupce pro dočasné tabulky.
Omezení dimenzí služeb a databází
| Dimenze | Limit | Alternativní řešení |
|---|---|---|
| Maximální počet skupin synchronizace, do které může jakákoli 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 pouze jedna skupina synchronizace. Pokud existuje více než jedna skupina synchronizace, celkový počet koncových bodů ve všech skupinách synchronizace nesmí překročit 30. Pokud databáze patří do více skupin synchronizace, počítá se jako několik koncových bodů, ne jako jedna.
Síťové požadavky
Poznámka
Pokud používáte možnost Synchronizovat privátní propojení, tyto požadavky na síť se nevztahují.
Po nastavení skupiny synchronizace se Synchronizace dat musí připojit k databázi centra. Při navázání skupiny synchronizace musí mít server Azure SQL v nastavení následující Firewalls and virtual networks konfiguraci:
- Možnost Odepřít přístup k veřejné síti musí být nastavená na Vypnuto.
- Povolit službám a prostředkům Azure přístup k tomuto serveru musí být nastavené na Ano nebo musíte vytvořit pravidla IP adres pro IP adresy používané Synchronizace dat službou.
Po vytvoření a zřízení skupiny synchronizace můžete tato nastavení zakázat. Agent synchronizace se připojí přímo k databázi centra a pomocí pravidel IP adres brány firewall nebo privátních koncových bodů serveru můžete agentovi povolit přístup k hub server.
Poznámka
Pokud změníte nastavení schématu skupiny synchronizace, budete muset službě Synchronizace dat znovu povolit přístup k serveru, aby bylo možné databázi centra znovu zřídit.
Rezidence dat v oblastech
Pokud synchronizujete data ve stejné oblasti, Synchronizace dat SQL neukládá ani nezpracuje zákaznická data mimo oblast, ve které je instance služby nasazená. Pokud synchronizujete data napříč 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í Synchronizace dat SQL služby
Za samotnou službu Synchronizace dat SQL poplatky. Stále ale shromažďujete poplatky za přenos dat za přesun dat do a z vaší SQL Database instance. 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 SQL Database účet úložiště
Ano. K hostování databáze centra SQL Database účet úložiště.
Je možné pomocí Synchronizace dat synchronizovat pouze SQL Server databázemi?
Ne přímo. Mezi jednotlivými SQL Server databázemi ale můžete synchronizovat nepřímo vytvořením databáze centra v Azure a přidáním místních databází do skupiny synchronizace.
Můžu použít nástroj Synchronizace dat synchronizaci mezi databázemi v SQL Database, které patří do různých předplatných
Ano. Můžete synchronizovat mezi databázemi, které patří do skupin prostředků vlastněných různými předplatným, a to i v případě, že 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 v Azure Portal.
- Jinak musíte členy synchronizace přidat pomocí PowerShellu.
Můžu použít nástroj Synchronizace dat synchronizaci mezi databázemi v SQL Database, které patří do různých cloudů (například veřejný cloud Azure a Azure China 21Vianet)
Ano. Můžete synchronizovat mezi databázemi, které patří do různých cloudů. Pomocí PowerShellu musíte přidat členy synchronizace, které patří do různých předplatných.
Můžu pomocí Synchronizace dat data z produkční databáze do prázdné databáze a pak je synchronizovat?
Ano. Vytvořte schéma v nové databázi ručně jeho skriptem z původní databáze. Po vytvoření schématu přidejte tabulky do skupiny synchronizace a zkopírujte data a udržujte je synchronizované.
Mám použít Synchronizace dat SQL k zálohování a obnovení databází?
K vytvoření zálohy Synchronizace dat SQL nedoporučujeme používat vlastní data. Nemůžete zálohovat a obnovovat do konkrétního bodu v čase, protože Synchronizace dat SQL synchronizace nemají verzi. Kromě Synchronizace dat SQL zálohování jiných objektů SQL, jako jsou například uložené procedury, a nevyu i tak rychle nevyukoná ekvivalent operace obnovení.
Jednu doporučenou techniku zálohování najdete v tématu Kopírování databáze v Azure SQL Database.
Může Synchronizace dat synchronizovat šifrované tabulky a sloupce.
- Pokud databáze používá Always Encrypted, můžete synchronizovat pouze tabulky a sloupce, které nejsou šifrované. Šifrované sloupce nemůžete synchronizovat, protože Synchronizace dat data dešifrovat.
- Pokud sloupec používá Column-Level Encryption (CLE), můžete sloupec synchronizovat, pokud je velikost řádku menší než maximální velikost 24 Mb. Synchronizace dat se sloupcem zašifrovaným klíčem (CLE) za normální binární data. Pokud chcete dešifrovat data u ostatních členů synchronizace, musíte mít stejný certifikát.
Je kolace podporovaná v Synchronizace dat SQL
Ano. Synchronizace dat SQL podporuje kolaci v následujících scénářích:
- Pokud vybrané tabulky schématu synchronizace ještě nejsou ve vašem centru nebo členské databázi, při nasazení skupiny synchronizace služba 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, již existují ve vaší databázi centra i v databázích členů, Synchronizace dat SQL vyžaduje, aby sloupce primárního klíče měly stejnou kolaci mezi centrem a databázemi členů, aby se skupina synchronizace úspěšně nasadila. Neexistují žádná omezení kolace pro sloupce kromě sloupců primárního klíče.
Podporuje se federace v Synchronizace dat SQL
Kořenovou databázi federace je možné ve službě Synchronizace dat SQL bez omezení používat. Koncový bod federované databáze není možné přidat do aktuální verze Synchronizace dat SQL.
Můžu pomocí Synchronizace dat dat exportovaných z Dynamics 365 pomocí funkce Přineste si vlastní databázi (BYOD)?
Funkce Přineste si vlastní databázi Dynamics 365 umožňuje správcům exportovat entity dat z aplikace do vlastní Microsoft Azure SQL databáze. Synchronizace dat data můžete použít k synchronizaci s jinými databázemi, pokud se data exportují pomocí přírůstkového nabízení (úplné nabízení se nepodporuje) a povolení triggerů v cílové databázi je nastavené na ano.
Další kroky
Aktualizace schématu synchronizované databáze
Musíte aktualizovat schéma databáze ve skupině synchronizace? Změny schématu se automaticky nereplikují. Některá řešení najdete v následujících článcích:
- Automatizace replikace změn schématu pomocí Synchronizace dat SQL v Azure
- Aktualizace schématu synchronizace ve stávající skupině synchronizace pomocí PowerShellu
Monitorování a odstraňování potíží
Je Synchronizace dat SQL podle očekávání? Informace o monitorování aktivit a řešení potíží najdete v následujících článcích:
- Monitorování Synchronizace dat SQL s Azure Monitor protokoly
- Řešení potíží se Synchronizací dat SQL Azure
Další informace o Azure SQL Database
Další informace o těchto Azure SQL Database v následujících článcích: