Co je Synchronizace dat SQL pro Azure?
Platí pro: Azure SQL Database
Důležité
Synchronizace dat SQL budou vyřazeny 30. září 2027. Zvažte migraci na alternativní řešení replikace nebo synchronizace dat.
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.
Synchronizace dat SQL Azure 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.
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 být pro zákazníky, kteří uvažují o přechodu do cloudu, a chtěli by některé své aplikace vložit 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 | Automatizované zálohování ve službě Azure SQL Database |
Měřítko čtení | Použití replik jen pro čtení k přesměrování zpracování ú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 |
Private Link pro Synchronizace dat
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.
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
- Kurz: Nastavení Synchronizace dat SQL mezi databázemi v Azure SQL Database a SQL Server
- agent Synchronizace dat – agent Synchronizace dat pro Synchronizace dat SQL
Nastavení Synchronizace dat pomocí PowerShellu
- Použití PowerShellu k synchronizaci dat mezi několika databázemi ve službě Azure SQL Database
- Použití PowerShellu k synchronizaci dat mezi SQL Database a SQL Serverem
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 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 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 schválit privátní propojení, najdete v tématu Kurz: Nastavení Synchronizace dat SQL mezi databázemi ve službě Azure SQL Database a SQL Serverem. 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, binární, 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: čas, datum a čas, 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
asales.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
afoo
), 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
IGNORE_DUP_KEY
neboWHERE
predikát filtru, nejsou podporovány 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í transakční konzistentní kopie 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.
Související obsah
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:
- Automatizace replikace změn schématu pomocí Synchronizace dat SQL v Azure
- Použití PowerShellu k aktualizaci schématu synchronizace v existující skupině synchronizace
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:
- Monitorování Synchronizace dat SQL s využitím protokolů Služby Azure Monitor
- Řešení potíží se Synchronizací dat SQL Azure
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: