Omezení a známé problémy se službou Azure Synapse Link pro SQL
Tento článek uvádí omezení a známé problémy se službou Azure Synapse Link pro SQL.
Omezení
Následující části obsahují omezení pro Azure Synapse Link pro SQL.
Azure SQL Database a SQL Server 2022
- Zdrojové tabulky musí mít primární klíče.
- Jako zdroj dat pro Azure Synapse Link pro SQL se podporuje jenom zapisovatelná primární replika.
- Následující datové typy nejsou podporované pro primární klíče ve zdrojových tabulkách.
- reálný
- float
- hierarchyid
- sql_variant
- časová značka
- Velikost řádku zdrojové tabulky nesmí překročit 7 500 bajtů. U tabulek, ve kterých jsou sloupce s proměnnou délkou uložené mimo řádek, je v hlavním záznamu uložený ukazatel 24 bajtů.
- Při počátečním vytváření snímků zdrojových tabulek se nepodporují všechna data zdrojové tabulky obsahující velké objekty (LOB) větší než 1 MB. Mezi tyto datové typy LOB patří: varchar(max), nvarchar(max), varbinary(max). Vyvolá se chyba a data se neexportují do Azure Synapse Analytics. Pomocí uložené procedury sp_configure zvyšte nakonfigurovanou maximální hodnotu pro
max text repl size
možnost, která má výchozí hodnotu 64 K. Nakonfigurovaná hodnota-1
značí žádný limit, kromě limitu stanoveného datovým typem. - Tabulky povolené pro Azure Synapse Link pro SQL můžou mít maximálně 1 020 sloupců (ne 1 024).
- Databáze sice může mít povolené více odkazů, ale daná tabulka nemůže patřit do více odkazů.
- Pokud vlastník databáze nemá namapované přihlášení, azure Synapse Link pro SQL při povolování připojení k propojení dojde k chybě. Uživatel může nastavit vlastníka databáze na platného uživatele pomocí
ALTER AUTHORIZATION
příkazu k vyřešení tohoto problému. - Pokud zdrojová tabulka obsahuje počítané sloupce nebo sloupce s datovými typy, které vyhrazené fondy SQL nepodporují, sloupce se nereplikují. Nepodporované sloupce zahrnují následující:
- image
- text
- xml
- časová značka
- sql_variant
- UDT
- geometrie
- zeměpis
- Do jednoho propojení lze přidat maximálně 5 000 tabulek.
- Následující operace jazyka DDL (Table Data Definition Language) nejsou u zdrojových tabulek povoleny, pokud jsou povolené pro Azure Synapse Link pro SQL. Všechny ostatní operace DDL jsou povolené, ale nereplikují se do Azure Synapse Analytics.
- Přepnutí oddílu
- Přidání, přetažení nebo změna sloupce
- Změnit primární klíč
- Přetažení nebo zkrácení tabulky
- Přejmenovat tabulku
- Pokud se jazyk DDL (Data Definition Language) + jazyk pro manipulaci s daty (DML) provádí v explicitní transakci (mezi
BEGIN TRANSACTION
příkazy aEND TRANSACTION
příkazy), replikace pro odpovídající tabulky selže v rámci připojení propojení.Poznámka:
Pokud je tabulka kritická pro konzistenci transakcí na úrovni připojení propojení, zkontrolujte stav tabulky Azure Synapse Link na kartě Monitorování.
- Azure Synapse Link pro SQL nejde povolit, pokud se pro zdrojovou tabulku používají některé z následujících funkcí.
- Change Data Capture
- Tabulka dočasných historie
- Funkce Always Encrypted
- Tabulky v paměti
- Index columnstore
- Graf
- Systémové tabulky nelze replikovat.
- Konfigurace zabezpečení ze zdrojové databáze se neprojeví v cílovém vyhrazeném fondu SQL.
- Povolení azure Synapse Linku pro SQL vytvoří nové schéma s názvem
changefeed
. Nepoužívejte toto schéma, protože je vyhrazené pro použití systému. - Zdrojové tabulky s kolacemi, které nejsou podporovány vyhrazenými fondy SQL, jako je UTF-8 a určitá japonská kolace, nelze replikovat. Viz podporované kolace ve fondech Synapse SQL.
- Kromě toho Azure Synapse Link pro SQL nepodporuje některá kolace thajštiny:
Thai100CaseInsensitiveAccentInsensitiveKanaSensitive
Thai100CaseInsensitiveAccentSensitiveSupplementaryCharacters
Thai100CaseSensitiveAccentInsensitiveKanaSensitive
Thai100CaseSensitiveAccentInsensitiveKanaSensitiveWidthSensitiveSupplementaryCharacters
Thai100CaseSensitiveAccentSensitiveKanaSensitive
Thai100CaseSensitiveAccentSensitiveSupplementaryCharacters
ThaiCaseSensitiveAccentInsensitiveWidthSensitive
- Kromě toho Azure Synapse Link pro SQL nepodporuje některá kolace thajštiny:
- Aktualizace s jedním řádkem (včetně úložiště mimo stránku) o > velikosti 370 MB se nepodporují.
- Když je služba Azure Synapse Link pro SQL ve službě Azure SQL Database nebo SQL Server 2022 povolená, funkce agresivního zkrácení protokolu akcelerovaného obnovení databáze (ADR) se automaticky zakáže. To je nezbytné, protože Azure Synapse Link pro SQL přistupuje k databázovému transakčnímu protokolu. Toto chování je podobné změněné zachytávání dat (CDC). Aktivní transakce nadále uchovávají zkrácení transakčního protokolu, dokud se transakce potvrzení a Azure Synapse Link pro SQL nezachytí nebo transakce přeruší. To může vést k tomu, že se transakční protokol zaplní více než obvykle a měl by být monitorován tak, aby transakční protokol nevyplnil.
Pouze Azure SQL Database
- Azure Synapse Link pro SQL se nepodporuje na úrovni Free, Basic nebo Standard s méně než 100 DTU.
- Azure Synapse Link pro SQL se ve spravovaných instancích SQL nepodporuje.
- Instanční objekt se nepodporuje pro ověřování ve zdrojové službě Azure SQL Database, takže při vytváření propojené služby Azure SQL Db zvolte ověřování SQL, spravovanou identitu přiřazenou uživatelem (UAMI) nebo spravovanou identitu přiřazenou službou (SAMI).
- Pokud má logický server Azure SQL Database nakonfigurovaný jak sami, tak UAMI, Azure Synapse Link používá SAMI.
- Pokud má sekundární databáze jiný název než primární databáze, nejde v sekundární databázi po převzetí služeb při selhání geoDR povolit Azure Synapse Link.
- Pokud ve své databázi povolíte Azure Synapse Link pro SQL jako uživatel Microsoft Entra, obnovení k určitému bodu v čase selže. PitR funguje jenom v případě, že ve své databázi povolíte Azure Synapse Link pro SQL jako uživatele SQL.
- Pokud vytvoříte databázi jako uživatel Microsoft Entra a povolíte Azure Synapse Link pro SQL, uživatel ověřování SQL (například i role správce systému) nebude moct zakázat nebo provést změny azure Synapse Linku pro artefakty SQL. Jiný uživatel Microsoft Entra však může povolit nebo zakázat Azure Synapse Link pro SQL ve stejné databázi. Podobně platí, že pokud vytvoříte databázi jako uživatel ověřování SQL, povolení nebo zakázání Azure Synapse Linku pro SQL jako uživatel Microsoft Entra nefunguje.
- Replikace dat mezi tenanty není podporována, pokud je azure SQL Database a pracovní prostor Azure Synapse v samostatných tenantech.
Pouze SQL Server 2022
- Azure Synapse Link pro SQL není možné povolit u databází, které jsou vydavateli nebo distributory transakční replikace.
- U asynchronních replik ve skupině dostupnosti musí být transakce zapsány do všech replik před publikováním do Azure Synapse Linku pro SQL.
- Azure Synapse Link pro SQL se nepodporuje u databází s povoleným zrcadlením databáze.
- Obnovení azure Synapse Linku pro databázi s podporou SQL z místního prostředí do služby Azure SQL Managed Instance se nepodporuje.
Upozornění
Azure Synapse Link pro SQL se nepodporuje u databází, které používají také Azure SQL Managed Instance Link. Upozorňujeme, že při přechodu spravované instance do režimu čtení a zápisu v těchto scénářích může docházet k úplným problémům s transakčním protokolem.
Známé problémy
Neodstraňujte pracovní prostor Azure Synapse Analytics se spuštěným odkazem, který by mohl způsobit vyplnění transakčního protokolu zdrojové databáze.
Platí pro – Azure Synapse Link pro Azure SQL Database a SQL Server 2022
Problém – Když odstraníte pracovní prostor Azure Synapse Analytics, je možné, že spuštěné odkazy nemusí být zastavené, což způsobí, že zdrojová databáze si myslí, že propojení je stále funkční a mohlo by vést k tomu, že se transakční protokol nezkrátí a vyplní.
Řešení – V této situaci existují dvě možná řešení:
- Před odstraněním pracovního prostoru Azure Synapse Analytics zastavte všechny spuštěné odkazy.
- Ručně vyčistíte definici propojení ve zdrojové databázi.
table_group_id
Pomocí následujícího dotazu najděte, co je potřeba zastavit.SELECT table_group_id, workspace_id, synapse_workgroup_name FROM [changefeed].[change_feed_table_groups] WHERE synapse_workgroup_name = <synapse workspace name>;
- Odstraňte jednotlivé odkazy identifikované pomocí následujícího postupu.
EXEC sys.sp_change_feed_drop_table_group @table_group_id = <table_group_id>;
- Pokud zakážete všechny skupiny tabulek pro danou databázi, můžete kanál změn v databázi zakázat také pomocí následujícího příkazu.
EXEC sys.sp_change_feed_disable_db;
Opětovné povolení kanálu změn v tabulce, pro kterou byla nedávno zakázaná, zobrazí chybu.
- Platí pro – Azure Synapse Link pro Azure SQL Database a SQL Server 2022
- Toto je neobvyklé chování.
- Problém – Když se pokusíte povolit tabulku, která byla nedávno zakázána s metadaty ještě nebyla vyčištěna a stav označený jako ZAKÁZÁNO, vyvolá se chybová zpráva
A table can only be enabled once among all table groups
. - Řešení – Počkejte na nějakou dobu, než se dokončí postup zakázaného systému tabulek, a pak zkuste tabulku znovu povolit.
Pokus o povolení Azure Synapse Linku pro databázi importovanou pomocí SSDT, SQLPackage pro operace importu, exportu a extrakce/ nasazení
- Platí pro – Azure Synapse Link pro Azure SQL Database a SQL Server 2022
- Problém – U databází SQL s povolenou službou Azure Synapse Link při použití operací importu/exportu a extrahování/nasazení SSDT k importu nebo nastavení nové databáze
changefeed
se schéma a uživatel v nové databázi nevyloučí. DacFX však tabulky kanálu změn ignorují, protože jsou označené jakois_ms_shipped=1
insys.objects
a tyto objekty nikdy nezahrnou do operací importu/exportu a extrakce/nasazení SSDT. Pokud v importované/nasazené databázi povolíte Azure Synapse Link, systém uložená procedurasys.sp_change_feed_enable_db
selže, pokudchangefeed
uživatel a schéma již existují. K tomuto problému dochází v případě, že jste vytvořili uživatele nebo schémachangefeed
, které nesouvisí s funkcí kanálu změn Azure Synapse Linku. - Usnesení-
- Ručně zahoďte prázdné
changefeed
schéma achangefeed
uživatele. Azure Synapse Link je pak možné úspěšně povolit v importované/nasazené databázi. - Pokud jste definovali vlastní schéma nebo uživatele pojmenované
changefeed
v databázi, které nesouvisí se službou Azure Synapse Link a nemáte v úmyslu používat Azure Synapse Link pro SQL, není nutné odstranit schémachangefeed
ani uživatele. - Pokud jste definovali schéma zákazníka nebo uživatele pojmenovaného
changefeed
ve vaší databázi, v současné době se tato databáze nemůže účastnit služby Azure Synapse Link pro SQL.
- Ručně zahoďte prázdné