Limitazioni e problemi noti relativi a Collegamento ad Azure Synapse per SQL

Questo articolo elenca le limitazioni e i problemi noti relativi a Collegamento ad Azure Synapse per SQL.

Limiti

Le sezioni seguenti elencano le limitazioni per Collegamento ad Azure Synapse per SQL.

Database SQL di Azure e SQL Server 2022

  • Le tabelle di origine devono avere chiavi primarie.
  • Solo una replica primaria scrivibile è supportata come origine dati per Collegamento ad Azure Synapse per SQL.
  • I tipi di dati seguenti non sono supportati per le chiavi primarie nelle tabelle di origine.
    • real
    • float
    • hierarchyid
    • sql_variant
    • timestamp
  • Le dimensioni delle righe della tabella di origine non possono superare i 7.500 byte. Per le tabelle in cui le colonne a lunghezza variabile vengono archiviate all'esterno della riga, viene archiviato un puntatore a 24 byte nel record principale.
  • Quando viene creato inizialmente uno snapshot delle tabelle di origine, i dati della tabella di origine contenenti dati LOB (Large Object) con dimensioni maggiori di 1 MB non sono supportati. Questi tipi di dati LOB includono: varchar(max), nvarchar(max), varbinary(max). Viene generato un errore e i dati non vengono esportati in Azure Synapse Analytics. Usare la stored procedure sp_configure per aumentare il valore massimo configurato per max text repl size l'opzione, che per impostazione predefinita è 64 K. Un valore configurato di -1 indica nessun limite, diverso dal limite imposto dal tipo di dati.
  • Le tabelle abilitate per Collegamento ad Azure Synapse per SQL possono avere un massimo di 1.020 colonne (non 1.024).
  • Anche se un database può avere più collegamenti abilitati, una determinata tabella non può appartenere a più collegamenti.
  • Quando un proprietario del database non ha un account di accesso mappato, in Collegamento ad Azure Synapse per SQL si verifica un errore durante l'abilitazione di una connessione di collegamento. Per risolvere il problema, l'utente può impostare il proprietario del database su un utente valido con il comando ALTER AUTHORIZATION.
  • Se la tabella di origine contiene colonne calcolate o colonne con tipi di dati non supportati dai pool SQL dedicati, le colonne non vengono replicate. Le colonne non supportate includono quanto segue.
    • Immagine
    • Testo
    • xml
    • timestamp
    • sql_variant
    • UDT
    • geometry
    • geography
  • È possibile aggiungere un massimo di 5.000 tabelle a una singola connessione di collegamento.
  • Le operazioni DDL (Data Definition Language) della tabella seguenti non sono consentite nelle tabelle di origine quando sono abilitate per Azure Collegamento a Synapse per SQL. Tutte le altre operazioni DDL sono consentite, ma non vengono replicate in Azure Synapse Analytics.
    • Cambia partizione
    • Aggiungi/Rimuovi/Modifica colonna
    • Modifica chiave primaria
    • Rimuovi/Tronca tabella
    • Rinomina tabella
  • Se DDL (Data Definition Language) + DML (Data Manipulation Language) viene eseguito in una transazione esplicita (tra BEGIN TRANSACTION istruzioni e END TRANSACTION ), la replica per le tabelle corrispondenti non riesce all'interno della connessione di collegamento.

    Nota

    Se una tabella è fondamentale per la coerenza transazionale a livello di connessione di collegamento, esaminare lo stato della tabella di Collegamento ad Azure Synapse nella scheda Monitoraggio.

  • Azure Collegamento a Synapse per SQL non può essere abilitato se per la tabella di origine sono in uso alcune delle funzionalità seguenti.
    • Change Data Capture
    • Tabella di cronologia temporale
    • Always Encrypted
    • Tabelle in memoria
    • Indice columnstore
    • Grafico
  • Le tabelle di sistema non possono essere replicate.
  • La configurazione di sicurezza dal database di origine NON verrà riflessa nel pool SQL dedicato di destinazione.
  • L'abilitazione di Collegamento ad Azure Synapse per SQL crea un nuovo schema denominato changefeed. Non usare questo schema, perché è riservato per l'uso da parte del sistema.
  • Le tabelle di origine con regole di confronto non supportate dai pool SQL dedicati, ad esempio UTF-8 e alcune regole di confronto giapponesi, non possono essere replicate. Di seguito sono riportate le regole di confronto supportate nel pool SQL di Synapse.
    • Inoltre, Azure Collegamento a Synapse per SQL non supporta alcune regole di confronto del linguaggio thai:
      • Thai100CaseInsensitiveAccentInsensitiveKanaSensitive
      • Thai100CaseInsensitiveAccentSensitiveSupplementaryCharacters
      • Thai100CaseSensitiveAccentInsensitiveKanaSensitive
      • Thai100CaseSensitiveAccentInsensitiveKanaSensitiveWidthSensitiveSupplementaryCharacters
      • Thai100CaseSensitiveAccentSensitiveKanaSensitive
      • Thai100CaseSensitiveAccentSensitiveSupplementaryCharacters
      • ThaiCaseSensitiveAccentInsensitiveWidthSensitive
    • Attualmente, le regole di confronto Latin1_General_BIN2 non sono supportate perché esiste un problema noto in cui il collegamento non può essere arrestato né le tabelle sottostanti potrebbero essere rimosse dalla replica.
  • Gli aggiornamenti a riga singola (inclusa l'archiviazione fuori pagina) di > 370 MB non sono supportati.
  • Quando Collegamento ad Azure Synapse per SQL nel database SQL di Azure o SQL Server 2022 è abilitato, la funzionalità di troncamento aggressivo del log di Ripristino accelerato del database (ADR) viene disabilitata automaticamente perché Collegamento ad Azure Synapse per SQL accede al log delle transazioni del database. Questo comportamento è simile a CDC (Change Data Capture). Le transazioni attive continuano a contenere il troncamento del log delle transazioni fino a quando non viene eseguito il commit delle transazioni e Collegamento ad Azure Synapse per SQL recupera o interrompe le transazioni. Ciò potrebbe comportare un riempimento superiore al solito per il log delle transazioni ed è necessario monitorare questo aspetto per evitare il riempimento del log delle transazioni.

solo database SQL di Azure

  • Azure Collegamento a Synapse per SQL non è supportato nel livello Gratuito, Basic o Standard con meno di 100 DTU.
  • Collegamento ad Azure Synapse per SQL non è supportato nelle istanze gestite di SQL.
  • L'entità servizio non è supportata per l'autenticazione nel database SQL di Azure di origine, quindi quando si crea il servizio collegato database SQL di Azure, scegliere Autenticazione SQL, identità gestita assegnata dall'utente o identità gestita assegnata dal servizio.
  • Se per il server logico del database SQL di Azure è stata configurata sia un'identità gestita assegnata dal servizio sia un'identità gestita assegnata dall'utente, Collegamento ad Azure Synapse usa l'identità gestita assegnata dal servizio.
  • Non è possibile abilitare Azure Collegamento a Synapse nel database secondario dopo un failover geoDR, se il database secondario ha un nome diverso dal database primario.
  • Se si abilita Azure Collegamento a Synapse per SQL nel database come utente di Microsoft Entra, il ripristino temporizzato ha esito negativo. Il ripristino temporizzato funziona solo quando si abilita Collegamento ad Azure Synapse per SQL nel database come utente SQL.
  • Se si crea un database come utente di Microsoft Entra e si abilita Collegamento ad Azure Synapse per SQL, un utente di autenticazione SQL, ad esempio anche un ruolo sysadmin, non sarà in grado di disabilitare/apportare modifiche agli artefatti di Collegamento ad Azure Synapse per SQL. Tuttavia, un altro utente di Microsoft Entra è in grado di abilitare/disabilitare Collegamento ad Azure Synapse per SQL nello stesso database. Analogamente, se si crea un database come utente di autenticazione SQL, l'abilitazione o la disabilitazione di Azure Collegamento a Synapse per SQL come utente di Microsoft Entra non funziona.
  • La replica dei dati tra tenant non è supportata nei casi in cui un database SQL di Azure e l'area di lavoro di Azure Synapse si trovano in tenant separati.

Solo SQL Server 2022

  • Collegamento ad Azure Synapse per SQL non può essere abilitato nei database che sono server di pubblicazione o server di distribuzione di replica transazionale.
  • Con le repliche asincrone in un gruppo di disponibilità, le transazioni devono essere scritte in tutte le repliche prima della pubblicazione in Azure Collegamento a Synapse per SQL.
  • Collegamento ad Azure Synapse per SQL non è supportato nei database con il mirroring del database abilitato.
  • Il ripristino di un'istanza di Collegamento ad Azure Synapse per il database abilitato per SQL da locale a Istanza gestita di SQL di Azure non è supportato.

Attenzione

Collegamento ad Azure Synapse per SQL non è supportato nei database che usano anche il collegamento all'Istanza gestita di SQL di Azure. Attenzione che in questi scenari, quando l'istanza gestita passa alla modalità di lettura/scrittura, potrebbero verificarsi problemi completi del log delle transazioni.

Problemi noti

  • Si applica a: Collegamento ad Azure Synapse per il database SQL di Azure e SQL Server 2022

  • Problema: quando si elimina un'area di lavoro di Azure Synapse Analytics, è possibile che l'esecuzione di collegamenti non venga arrestata, il che fa sì che il database di origine pensi che il collegamento sia ancora operativo e che il log delle transazioni non venga troncato e compilato.

  • Risoluzione: esistono due possibili soluzioni a questa situazione:

    1. Arrestare i collegamenti in esecuzione prima di eliminare l'area di lavoro di Azure Synapse Analytics.
    2. Pulire manualmente la definizione del collegamento nel database di origine.
      1. Trovare l'oggetto table_group_id che deve essere arrestato usando la query seguente.
        SELECT table_group_id, workspace_id, synapse_workgroup_name
        FROM [changefeed].[change_feed_table_groups]
        WHERE synapse_workgroup_name = <synapse workspace name>;
        
      2. Eliminare ogni collegamento identificato usando la procedura seguente.
        EXEC sys.sp_change_feed_drop_table_group @table_group_id = <table_group_id>;
        
      3. Facoltativamente, se si disabilitano tutti i gruppi di tabelle per un determinato database, è anche possibile disabilitare il feed di modifiche nel database con il comando seguente.
        EXEC sys.sp_change_feed_disable_db;
        

Riabilitare il feed di modifiche in una tabella per cui è stato disabilitato di recente verrà visualizzato un errore

  • Si applica a: Collegamento ad Azure Synapse per il database SQL di Azure e SQL Server 2022
  • Si tratta di un comportamento non comune.
  • Problema: quando si prova ad abilitare una tabella disabilitata di recente con i relativi metadati non ancora puliti e lo stato contrassegnato come DISABLED, viene generato un errore che indica A table can only be enabled once among all table groups.
  • Risoluzione: attendere il completamento della procedura di sistema per la tabelle disabilitata e quindi provare a riabilitare la tabella.
  • Si applica a: Collegamento ad Azure Synapse per il database SQL di Azure e SQL Server 2022
  • Problema: per i database SQL abilitati con Azure Collegamento a Synapse, quando si usano le operazioni di Importazione/Esportazione estrazione/distribuzione di SSDT per importare/configurare un nuovo database, lo schema e l'utente changefeed non vengono esclusi nel nuovo database. Tuttavia, le tabelle per il feed di modifiche vengono ignorate da DacFX perché sono contrassegnate come is_ms_shipped=1 in sys.objectse tali oggetti non sono mai inclusi nelle operazioni SSDT Importazione/Esportazione e Extract/Deploy. Quando si abilita Collegamento ad Azure Synapse nel database importato/distribuito, la stored procedure di sistema sys.sp_change_feed_enable_db ha esito negativo se l'utente e lo schema changefeed esistono già. Questo problema si verifica se è stato creato un utente o uno schema denominato changefeed non correlato alla funzionalità del feed di modifiche di Collegamento ad Azure Synapse.
  • Risoluzione:
    • Rimuovere manualmente lo schema changefeed vuoto e l'utente changefeed. Collegamento ad Azure Synapse può quindi essere abilitato correttamente nel database importato/distribuito.
    • Se è stato definito uno schema personalizzato o un utente denominato changefeed nel database che non è correlato a Collegamento ad Azure Synapse e non si intende usare Collegamento ad Azure Synapse per SQL, non è necessario rimuovere lo schema o l'utente changefeed.
    • Se è stato definito uno schema cliente o un utente denominato changefeed nel database, questo database non può attualmente partecipare a Collegamento ad Azure Synapse per SQL.