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 sp_configure della stored procedure per aumentare il valore massimo configurato per l'opzione
max text repl size
, che per impostazione predefinita è uguale a 64 K. Un valore configurato di-1
indica che non ci sono limiti oltre a quello 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 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 seguenti operazioni DDL (Data Definition Language) di tabella non sono consentite nelle tabelle di origine quando sono abilitate per Collegamento ad Azure 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 vengono eseguite operazioni DDL (Data Definition Language) + DML (Data Manipulation Language) in una transazione esplicita (tra istruzioni
BEGIN TRANSACTION
eEND TRANSACTION
), la replica per le tabelle corrispondenti avrà esito negativo 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.
- Collegamento ad Azure Synapse per SQL non può essere abilitato se una delle funzionalità seguenti è in uso per la tabella di origine.
- 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 da pool SQL dedicati, ad esempio UTF-8 e alcune regole di confronto giapponesi, non possono essere replicate. Vedere le regole di confronto supportate nei pool Synapse SQL.
- Collegamento ad Azure Synapse per SQL non supporta inoltre alcune regole di confronto del linguaggio thai:
Thai100CaseInsensitiveAccentInsensitiveKanaSensitive
Thai100CaseInsensitiveAccentSensitiveSupplementaryCharacters
Thai100CaseSensitiveAccentInsensitiveKanaSensitive
Thai100CaseSensitiveAccentInsensitiveKanaSensitiveWidthSensitiveSupplementaryCharacters
Thai100CaseSensitiveAccentSensitiveKanaSensitive
Thai100CaseSensitiveAccentSensitiveSupplementaryCharacters
ThaiCaseSensitiveAccentInsensitiveWidthSensitive
- Collegamento ad Azure Synapse per SQL non supporta inoltre alcune regole di confronto del linguaggio thai:
- 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 Questo aspetto è necessario per il fatto che 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
- Collegamento ad Azure 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.
- Collegamento ad Azure Synapse non può essere abilitato nel database secondario dopo un failover GeoDR se il database secondario ha un nome diverso dal database primario.
- Se si abilita Collegamento ad Azure 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/disabilitazione di Collegamento ad Azure 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 Collegamento ad Azure 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. Si noti che in questi scenari, quando l'istanza gestita passa alla modalità di lettura/scrittura, potrebbero verificarsi problemi correlati a log delle transazioni pieni.
Problemi noti
La mancata eliminazione di un'area di lavoro di Azure Synapse Analytics con un collegamento in esecuzione potrebbe causare il riempimento del log delle transazioni nel database di origine
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 i collegamenti in esecuzione non vengano arrestati, 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 si riempia.
Risoluzione: esistono due possibili soluzioni a questa situazione:
- Arrestare tutti i collegamenti in esecuzione prima di eliminare l'area di lavoro di Azure Synapse Analytics.
- Pulire manualmente la definizione del collegamento nel database di origine.
- Trovare il valore
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>;
- Rimuovere ogni collegamento identificato seguendo questa procedura.
EXEC sys.sp_change_feed_drop_table_group @table_group_id = <table_group_id>;
- 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;
- Trovare il valore
Se si riabilita il feed di modifiche in una tabella disabilitata 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.
Provare ad abilitare Collegamento ad Azure Synapse nel database importato tramite SSDT e SQLPackage per le operazioni di importazione/esportazione ed estrazione/distribuzione
- Si applica a: Collegamento ad Azure Synapse per il database SQL di Azure e SQL Server 2022
- Problema: per i database SQL abilitati con Collegamento ad Azure Synapse, quando si usano le operazioni di importazione/esportazione ed 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é contrassegnate comeis_ms_shipped=1
insys.objects
e tali oggetti non sono mai inclusi nelle operazioni di importazione/esportazione ed estrazione/distribuzione di SSDT. Quando si abilita Collegamento ad Azure Synapse nel database importato/distribuito, la stored procedure di sistemasys.sp_change_feed_enable_db
ha esito negativo se l'utente e lo schemachangefeed
esistono già. Questo problema si verifica se è stato creato un utente o uno schema denominatochangefeed
non correlato alla funzionalità del feed di modifiche di Collegamento ad Azure Synapse. - Risoluzione:
- Rimuovere manualmente lo schema
changefeed
vuoto e l'utentechangefeed
. 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'utentechangefeed
. - 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.
- Rimuovere manualmente lo schema