Sdílet prostřednictvím


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 a END 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
  • 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

  • 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í:

    1. Před odstraněním pracovního prostoru Azure Synapse Analytics zastavte všechny spuštěné odkazy.
    2. Ručně vyčistíte definici propojení ve zdrojové databázi.
      1. 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>;
        
      2. 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>;
        
      3. 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.
  • 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é jako is_ms_shipped=1 in sys.objectsa 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á procedura sys.sp_change_feed_enable_db selže, pokud changefeed uživatel a schéma již existují. K tomuto problému dochází v případě, že jste vytvořili uživatele nebo schéma changefeed , které nesouvisí s funkcí kanálu změn Azure Synapse Linku.
  • Usnesení-
    • Ručně zahoďte prázdné changefeed schéma a changefeed 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éma changefeed 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.