Begränsningar och kända problem med Azure Synapse Link för SQL
Den här artikeln innehåller begränsningar och kända problem med Azure Synapse Link för SQL.
Begränsningar
I följande avsnitt visas begränsningar för Azure Synapse Link för SQL.
Azure SQL Database och SQL Server 2022
- Källtabeller måste ha primära nycklar.
- Endast en skrivbar, primär replik stöds som datakälla för Azure Synapse Link för SQL.
- Följande datatyper stöds inte för primära nycklar i källtabellerna.
- verklig
- flyta
- hierarchyid
- sql_variant
- Tidsstämpel
- Källtabellens radstorlek får inte överstiga 7 500 byte. För tabeller där kolumner med variabel längd lagras utanför rad lagras en pekare på 24 byte i huvudposten.
- När källtabeller initialt ögonblicksbilderas stöds inte alla källtabelldata som innehåller stora objektdata (LOB) som är större än 1 MB. Dessa LOB-datatyper är: varchar(max), nvarchar(max), varbinary(max). Ett fel utlöses och data exporteras inte till Azure Synapse Analytics. Använd den lagrade proceduren sp_configure för att öka det konfigurerade maximala värdet för
max text repl size
alternativet, som standard är 64 K. Ett konfigurerat värde för-1
anger ingen gräns, förutom den gräns som datatypen anger. - Tabeller som är aktiverade för Azure Synapse Link för SQL kan ha högst 1 020 kolumner (inte 1 024).
- En databas kan ha flera länkar aktiverade, men en viss tabell kan inte tillhöra flera länkar.
- När en databasägare inte har någon mappad inloggning får Azure Synapse Link för SQL ett fel när en länkanslutning aktiveras. Användaren kan ange databasägaren till en giltig användare med
ALTER AUTHORIZATION
kommandot för att åtgärda problemet. - Om källtabellen innehåller beräknade kolumner eller kolumner med datatyper som dedikerade SQL-pooler inte stöder replikeras inte kolumnerna. Kolumner som inte stöds innehåller följande.
- bild
- text
- xml
- Tidsstämpel
- sql_variant
- UDT
- geometri
- geografi
- Högst 5 000 tabeller kan läggas till i en länkanslutning.
- Följande åtgärder för tabelldatadefinitionsspråk (DDL) tillåts inte i källtabeller när de är aktiverade för Azure Synapse Link för SQL. Alla andra DDL-åtgärder tillåts, men de replikeras inte till Azure Synapse Analytics.
- Växla partition
- Lägg till/släpp/ändra kolumn
- Ändra primärnyckel
- Ta bort/trunkera tabell
- Byt namn på tabell
- Om datadefinitionsspråk (DDL) + datamanipuleringsspråk (DML) körs i en explicit transaktion (mellan
BEGIN TRANSACTION
ochEND TRANSACTION
-instruktioner), misslyckas replikeringen för motsvarande tabeller inom länkanslutningen.Kommentar
Om en tabell är kritisk för transaktionskonsekvens på länkanslutningsnivån granskar du tillståndet för tabellen Azure Synapse Link på fliken Övervakning.
- Azure Synapse Link för SQL kan inte aktiveras om någon av följande funktioner används för källtabellen.
- Sammanställning av ändringsdata
- Tabell över tidshistorik
- Alltid krypterad
- Minnesinterna tabeller
- Kolumnlagringsindex
- Diagram
- Systemtabeller kan inte replikeras.
- Säkerhetskonfigurationen från källdatabasen återspeglas INTE i den dedikerade SQL-målpoolen.
- När du aktiverar Azure Synapse Link för SQL skapas ett nytt schema med namnet
changefeed
. Använd inte det här schemat eftersom det är reserverat för systemanvändning. - Källtabeller med sortering som inte stöds av dedikerade SQL-pooler, till exempel UTF-8 och vissa japanska sorteringar, kan inte replikeras. Se sortering som stöds i Synapse SQL-pooler.
- Dessutom har Azure Synapse Link för SQL inte stöd för vissa sortering av thailändska språk:
Thai100CaseInsensitiveAccentInsensitiveKanaSensitive
Thai100CaseInsensitiveAccentSensitiveSupplementaryCharacters
Thai100CaseSensitiveAccentInsensitiveKanaSensitive
Thai100CaseSensitiveAccentInsensitiveKanaSensitiveWidthSensitiveSupplementaryCharacters
Thai100CaseSensitiveAccentSensitiveKanaSensitive
Thai100CaseSensitiveAccentSensitiveSupplementaryCharacters
ThaiCaseSensitiveAccentInsensitiveWidthSensitive
- Dessutom har Azure Synapse Link för SQL inte stöd för vissa sortering av thailändska språk:
- Uppdateringar på en rad (inklusive lagring utanför sidan) på > 370 MB stöds inte.
- När Azure Synapse Link för SQL i Azure SQL Database eller SQL Server 2022 är aktiverat inaktiveras den aggressiva loggtrunkeringsfunktionen i Accelerated Database Recovery (ADR) automatiskt. Detta är nödvändigt eftersom Azure Synapse Link för SQL kommer åt databastransaktionsloggen. Det här beteendet liknar den ändrade datainsamlingen (CDC). Aktiva transaktioner fortsätter att hålla transaktionsloggens trunkering tills transaktionen checkar in och Azure Synapse Link för SQL kommer ikapp eller transaktionen avbryts. Detta kan leda till att transaktionsloggen fylls i mer än vanligt och bör övervakas så att transaktionsloggen inte fylls.
Endast Azure SQL Database
- Azure Synapse Link för SQL stöds inte på nivån Kostnadsfri, Basic eller Standard med färre än 100 DTU:er.
- Azure Synapse Link för SQL stöds inte på SQL Managed Instances.
- Tjänstens huvudnamn stöds inte för autentisering till Azure SQL DB-källan, så när du skapar en länkad Azure SQL DB-tjänst väljer du SQL-autentisering, användartilldelad hanterad identitet (UAMI) eller tjänsttilldelad hanterad identitet (SAMI).
- Om den logiska Azure SQL Database-servern har både en konfigurerad SAMI och UAMI använder Azure Synapse Link SAMI.
- Azure Synapse Link kan inte aktiveras på den sekundära databasen efter en GeoDR-redundansväxling, om den sekundära databasen har ett annat namn än den primära databasen.
- Om du aktiverar Azure Synapse Link för SQL i databasen som Microsoft Entra-användare misslyckas återställning till tidpunkt (PITR). PITR fungerar bara när du aktiverar Azure Synapse Link för SQL i databasen som SQL-användare.
- Om du skapar en databas som en Microsoft Entra-användare och aktiverar Azure Synapse Link för SQL kan en SQL-autentiseringsanvändare (till exempel även sysadmin-roll) inte inaktivera/göra ändringar i Azure Synapse Link för SQL-artefakter. En annan Microsoft Entra-användare kan dock aktivera/inaktivera Azure Synapse Link för SQL på samma databas. Om du skapar en databas som en SQL-autentiseringsanvändare fungerar inte aktivering/inaktivering av Azure Synapse Link för SQL som Microsoft Entra-användare.
- Datareplikering mellan klientorganisationer stöds inte där en Azure SQL Database och Azure Synapse-arbetsytan finns i separata klientorganisationer.
Endast SQL Server 2022
- Azure Synapse Link för SQL kan inte aktiveras på databaser som är transaktionsreplikeringsutgivare eller distributörer.
- Med asynkrona repliker i en tillgänglighetsgrupp måste transaktioner skrivas till alla repliker innan de publiceras till Azure Synapse Link för SQL.
- Azure Synapse Link för SQL stöds inte på databaser med databasspegling aktiverat.
- Det går inte att återställa en Azure Synapse Link för SQL-aktiverad databas från lokal till Azure SQL Managed Instance.
Varning
Azure Synapse Link för SQL stöds inte på databaser som också använder Azure SQL Managed Instance Link. Observera att när den hanterade instansen övergår till läs- och skrivläge i dessa scenarier kan det uppstå fullständiga problem med transaktionsloggen.
Kända problem
Ta inte bort en Azure Synapse Analytics-arbetsyta med en länk som körs kan orsaka att transaktionsloggen i källdatabasen fylls
Gäller för – Azure Synapse Link för Azure SQL Database och SQL Server 2022
Problem – När du tar bort en Azure Synapse Analytics-arbetsyta är det möjligt att länkar som körs kanske inte stoppas, vilket gör att källdatabasen tror att länken fortfarande fungerar och kan leda till att transaktionsloggen inte trunkeras och fylls.
Lösning – Det finns två möjliga lösningar på den här situationen:
- Stoppa alla länkar som körs innan du tar bort Azure Synapse Analytics-arbetsytan.
- Rensa länkdefinitionen manuellt i källdatabasen.
- Leta reda på det
table_group_id
som måste stoppas med hjälp av följande fråga.SELECT table_group_id, workspace_id, synapse_workgroup_name FROM [changefeed].[change_feed_table_groups] WHERE synapse_workgroup_name = <synapse workspace name>;
- Släpp varje länk som identifieras med hjälp av följande procedur.
EXEC sys.sp_change_feed_drop_table_group @table_group_id = <table_group_id>;
- Om du inaktiverar alla tabellgrupper för en viss databas kan du också inaktivera ändringsflöde i databasen med följande kommando.
EXEC sys.sp_change_feed_disable_db;
- Leta reda på det
Återaktivera ändringsflöde i en tabell som den nyligen inaktiverades för visar ett fel
- Gäller för – Azure Synapse Link för Azure SQL Database och SQL Server 2022
- Detta är ett ovanligt beteende.
- Problem – När du försöker aktivera en tabell som nyligen har inaktiverats med dess metadata som ännu inte har rensats och tillståndet har markerats som INAKTIVERAt genereras ett fel som anger
A table can only be enabled once among all table groups
. - Lösning – Vänta tills den inaktiverade tabellsystemproceduren har slutförts och försök sedan återaktivera tabellen igen.
Försök att aktivera Azure Synapse Link på databasen som importerats med SSDT, SQLPackage för import/export och extrahera/distribuera åtgärder
- Gäller för – Azure Synapse Link för Azure SQL Database och SQL Server 2022
- Problem – När du använder SSDT Import/Export and Extract/Deploy-åtgärder för att importera/konfigurera en ny databas
changefeed
utesluts inte schemat och användaren i den nya databasen för SQL-databaser som är aktiverade med Azure Synapse Link. Tabellerna för ändringsflödet ignoreras dock av DacFX eftersom de är markerade somis_ms_shipped=1
isys.objects
, och de objekten ingår aldrig i SSDT-åtgärderna Import/Export och Extract/Deploy. När du aktiverar Azure Synapse Link på den importerade/distribuerade databasen misslyckas den system lagrade procedurensys.sp_change_feed_enable_db
omchangefeed
användaren och schemat redan finns. Det här problemet uppstår om du har skapat en användare eller ett schema med namnetchangefeed
som inte är relaterat till azure Synapse Link-ändringsflödesfunktionen. - Resolution-
- Ta bort det tomma
changefeed
schemat ochchangefeed
användaren manuellt. Azure Synapse Link kan sedan aktiveras på den importerade/distribuerade databasen. - Om du har definierat ett anpassat schema eller en användare med namnet
changefeed
i databasen som inte är relaterad till Azure Synapse Link, och du inte tänker använda Azure Synapse Link för SQL, behöver du inte släppa schematchangefeed
eller användaren. - Om du har definierat ett kundschema eller en användare med namnet
changefeed
i databasen kan den här databasen för närvarande inte delta i Azure Synapse Link för SQL.
- Ta bort det tomma