Limitations et problèmes connus liés à Azure Synapse Link pour SQL
Cet article répertorie les limitations et problèmes connus liés à Azure Synapse Link pour SQL.
Limitations
Les sections suivantes répertorient les limitations liées à Azure Synapse Link pour SQL.
Azure SQL Database et SQL Server 2022
- Les tables sources doivent avoir des clés primaires.
- Seul un réplica principal accessible en écriture est pris en charge comme source de données pour Azure Synapse Link pour SQL.
- Les types de données suivants ne sont pas pris en charge pour les clés primaires dans les tables sources.
- real
- float
- hierarchyid
- sql_variant
- timestamp
- La taille de ligne de la table source ne peut pas dépasser 7 500 octets. Pour les tables où les colonnes de longueur variable sont stockées hors ligne, un pointeur de 24 octets est stocké dans l’enregistrement principal.
- Lorsque vous effectuez une capture instantanée initiale de tables sources, les données de tables sources constituées d’objet volumineux (LOB) de plus de 1 Mo ne sont pas prises en charge. Ces données LOB peuvent être de type varchar(max), nvarchar(max) ou varbinary(max). Une erreur est générée et des données ne sont pas exportées vers Azure Synapse Analytics. Utilisez la procédure stockée sp_configure pour augmenter la valeur maximale configurée pour l’option
max text repl size
, qui est par défaut de 64 K. Une valeur configurée sur-1
indique aucune limite, autre que la limite imposée par le type de données. - Les tables activées pour Azure Synapse Link pour SQL peuvent avoir un maximum de 1 020 colonnes (et non 1 024).
- Bien qu’une base de données puisse avoir plusieurs liens activés, une table donnée ne peut pas appartenir à plusieurs liens.
- Lorsqu’un propriétaire de base de données n’a pas de connexion mappée, Azure Synapse Link pour SQL rencontre une erreur lors de l’activation d’une connexion de lien. L’utilisateur peut définir le propriétaire de base de données sur un utilisateur valide avec la commande
ALTER AUTHORIZATION
pour résoudre ce problème. - Si la table source contient des colonnes calculées ou des colonnes avec des types de données que les pools SQL dédiés ne prennent pas en charge, les colonnes ne sont pas répliquées. Les colonnes non prises en charge sont les suivantes.
- image
- text
- xml
- timestamp
- sql_variant
- UDT
- geometry
- Geography
- Un maximum de 5 000 tables peut être ajouté à une connexion de lien unique.
- Les opérations de langage de définition de données (DDL) de table suivantes ne sont pas autorisées sur les tables sources lorsqu’elles sont activées pour Azure Synapse Link pour SQL. Toutes les autres opérations DDL sont autorisées, mais elles ne sont pas répliquées dans Azure Synapse Analytics.
- Basculer la partition
- Ajouter/supprimer/modifier une colonne
- Modifier la clé primaire
- Supprimer/tronquer la table
- Renommer la table
- Si le langage de définition de données (DDL) + langage de manipulation de données (DML) est exécuté dans une transaction explicite (entre les instructions
BEGIN TRANSACTION
etEND TRANSACTION
), la réplication pour les tables correspondantes échoue dans la connexion de liaison.Remarque
Si une table est essentielle pour la cohérence transactionnelle au niveau de la connexion de lien, consultez l’état de la table Azure Synapse Link sous l’onglet Surveillance.
- Azure Synapse Link pour SQL ne peut pas être activé si l’une des fonctionnalités suivantes est utilisée pour la table source.
- Capture de données modifiées
- Table d’historique temporelle
- Always Encrypted
- Tables en mémoire
- Index columnstore
- Graphique
- Les tables système ne peuvent pas être répliquées.
- La configuration de sécurité à partir de la base de données source ne sera PAS reflétée dans le pool SQL dédié cible.
- L’activation d’Azure Synapse Link pour SQL crée un schéma appelé
changefeed
. N’utilisez pas ce schéma, car il est réservé à l’utilisation du système. - Les tables sources avec des classements qui ne sont pas pris en charge par les pools SQL dédiés, comme UTF-8 et certains classements japonais, ne peuvent pas être répliquées. Consultez les informations sur les classements pris en charge dans les pools Synapse SQL.
- En outre, Azure Synapse Link pour SQL ne prend pas en charge certains classements de langue thaïlandaise :
Thai100CaseInsensitiveAccentInsensitiveKanaSensitive
Thai100CaseInsensitiveAccentSensitiveSupplementaryCharacters
Thai100CaseSensitiveAccentInsensitiveKanaSensitive
Thai100CaseSensitiveAccentInsensitiveKanaSensitiveWidthSensitiveSupplementaryCharacters
Thai100CaseSensitiveAccentSensitiveKanaSensitive
Thai100CaseSensitiveAccentSensitiveSupplementaryCharacters
ThaiCaseSensitiveAccentInsensitiveWidthSensitive
- En outre, Azure Synapse Link pour SQL ne prend pas en charge certains classements de langue thaïlandaise :
- Les mises à jour de ligne uniques (y compris le stockage hors page) de > 370 Mo ne sont pas prises en charge.
- Lorsque Azure Synapse Link pour SQL sur Azure SQL Database ou SQL Server 2022 est activé, la fonctionnalité de troncation de journal agressive de la récupération de base de données accélérée (ADR) est automatiquement désactivée. Cela est nécessaire, car Azure Synapse Link pour SQL accède au journal des transactions de la base de données. Ce comportement est similaire à la capture des changements de données (CDC). Les transactions actives continuent de conserver la troncation du journal des transactions jusqu’à ce que la transaction valide et qu’Azure Synapse Link pour SQL rattrape ou abandonne la transaction. Cela peut entraîner le remplissage du journal des transactions plus que d’habitude. Il est donc important de surveiller que le journal des transactions ne se remplisse pas.
Azure SQL Database uniquement
- Azure Synapse Link pour SQL n’est pas pris en charge sur le niveau Gratuit, Essentiel ou Standard avec moins de 100 DTU.
- Azure Synapse Link pour SQL n’est pas pris en charge sur SQL Managed Instances.
- Le principal du service n’est pas pris en charge pour l’authentification auprès de la base de données source Azure SQL DB. Lors de la création du service lié Azure SQL, choisissez l’authentification SQL, l’identité managée affectée par l’utilisateur ou l’identité managée affectée par le service (SAMI).
- Si le serveur logique Azure SQL Database est configuré avec à la fois SAMI et UAMI, Azure Synapse Link utilise SAMI.
- Azure Synapse Link ne peut pas être activé sur la base de données secondaire après un basculement de géo-reprise d’activité après sinistre si la base de données secondaire a un nom différent de la base de données primaire.
- Si vous activez Azure Synapse Link pour SQL sur votre base de données en tant qu’utilisateur Microsoft Entra, la restauration à un instant dans le passé échoue. La RDH fonctionne uniquement lorsque vous activez Azure Synapse Link sur votre base de données en tant qu’utilisateur SQL.
- Si vous créez une base de données en tant qu’utilisateur Microsoft Entra et activez Azure Synapse Link pour SQL, un utilisateur d’authentification SQL (par exemple, même le rôle sysadmin) ne peut pas désactiver ni modifier les artefacts Azure Synapse Link pour SQL. Toutefois, un autre utilisateur Microsoft Entra peut activer/désactiver Azure Synapse Link pour SQL sur la même base de données. De même, si vous créez une base de données en tant qu’utilisateur avec une authentification SQL, l’activation/la désactivation d’Azure Synapse Link pour SQL en tant qu’utilisateur Microsoft Entra ne fonctionne pas.
- La réplication de données interlocataires n’est pas prise en charge lorsqu’une base de données Azure SQL et l’espace de travail Azure Synapse se trouvent dans des locataires distincts.
SQL Server 2022 uniquement.
- Azure Synapse Link pour SQL ne peut pas être activé sur les bases de données qui sont des distributeurs ou des éditeurs de réplication transactionnelle.
- Avec les réplicas asynchrones dans un groupe de disponibilité, les transactions doivent être écrites dans tous les réplicas avant de publier sur Azure Synapse Link pour SQL.
- Azure Synapse Link pour SQL n’est pas pris en charge sur les bases de données avec la mise en miroir de bases de données activée.
- La restauration d’un lien Azure Synapse Link pour une base de données SQL localement vers Azure SQL Managed Instance n’est pas prise en charge.
Attention
Azure Synapse Link pour SQL n’est pas pris en charge sur les bases de données qui utilisent également un lien Azure SQL Managed Instance. Attention : dans ces scénarios, lorsque l’instance gérée passe en mode lecture-écriture, vous pouvez rencontrer des problèmes de journal complet.
Problèmes connus
Ne supprimez pas un espace de travail Azure Synapse Analytics avec un lien en cours d’exécution. Cela peut entraîner le remplissage du journal des transactions sur la base de données source
S’applique à : Azure Synapse Link pour Azure SQL Database et SQL Server 2022
Problème : lorsque vous supprimez un espace de travail Azure Synapse Analytics, il est possible que les liens en cours d’exécution ne soient pas arrêtés, ce qui fait que la base de données source pense que le lien est toujours opérationnel. Cela peut entraîner le remplissage du journal qui n’est alors pas tronqué.
Résolution : il existe deux solutions possibles à cette situation :
- Arrêtez les liens en cours d’exécution avant de supprimer l’espace de travail Azure Synapse Analytics.
- Nettoyez manuellement la définition de lien dans la base de données source.
- Recherchez le
table_group_id
qui doit être arrêté à l’aide de la requête suivante.SELECT table_group_id, workspace_id, synapse_workgroup_name FROM [changefeed].[change_feed_table_groups] WHERE synapse_workgroup_name = <synapse workspace name>;
- Supprimez chaque lien identifié à l’aide de la procédure suivante.
EXEC sys.sp_change_feed_drop_table_group @table_group_id = <table_group_id>;
- Si vous désactivez tous les groupes de tables pour une base de données spécifique, vous pouvez également désactiver le flux de modification sur la base de données avec la commande suivante.
EXEC sys.sp_change_feed_disable_db;
- Recherchez le
Réactiver le flux de modification sur un tableau pour lequel cette fonctionnalité a été désactivée récemment affiche une erreur
- S’applique à : Azure Synapse Link pour Azure SQL Database et SQL Server 2022
- Il s’agit d’un comportement rare.
- Problème : lorsque vous essayez d’activer une table qui a été désactivée récemment avec ses métadonnées qui n’ont pas encore été nettoyées et dont l’état est marqué comme DÉSACTIVÉ, une erreur est générée indiquant
A table can only be enabled once among all table groups
. - Résolution : attendez que la procédure système de table désactivée se termine, puis réessayez de réactiver la table.
Tentative d’activation d’Azure Synapse Link sur la base de données importée à l’aide de SSDT, SQLPackage pour les opérations d’importation/exportation et d’extraction/déploiement
- S’applique à : Azure Synapse Link pour Azure SQL Database et SQL Server 2022
- Problème : pour les bases de données SQL activées avec Azure Synapse Link, lorsque vous utilisez les opérations d’importation/exportation et d’extraction/déploiement SSDT pour importer/configurer une nouvelle base de données, le schéma et l’utilisateur
changefeed
ne sont pas exclus de la nouvelle base de données. Toutefois, les tables du flux de modification sont ignorées par DacFX, car elles sont marquées commeis_ms_shipped=1
danssys.objects
et ces objets n’ont jamais été inclus dans les opérations d’importation/exportation et d’extraction/déploiement SSDT. Lors de l’activation d’Azure Synapse Link sur la base de données importée ou déployée, la procéduresys.sp_change_feed_enable_db
stockée sur le système échoue si l’utilisateurchangefeed
et le schéma existent déjà. Ce problème se produit si vous avez créé un utilisateur ou un schéma nomméchangefeed
qui n’est pas lié à la fonctionnalité de flux de modification Azure Synapse Link. - Résolution :
- Supprimez manuellement le schéma
changefeed
l’utilisateurchangefeed
vides. Ensuite, Azure Synapse Link peut être activé avec succès sur la base de données importée ou déployée. - Si vous avez défini un schéma ou un utilisateur personnalisé nommé
changefeed
dans votre base de données qui n’est pas lié à Azure Synapse Link et que vous n’avez pas l’intention d’utiliser Azure Synapse Link pour SQL, il n’est pas nécessaire de supprimer votre schéma ou votre utilisateurchangefeed
. - Si vous avez défini un schéma client ou un utilisateur nommé
changefeed
dans votre base de données, cette base de données ne peut pas participer à Azure Synapse Link pour SQL.
- Supprimez manuellement le schéma