Partager via


Résoudre les problèmes liés aux bases de données mises en miroir Fabric à partir d’un serveur flexible Azure Database pour PostgreSQL

Cet article décrit les étapes de résolution des problèmes de mise en miroir d’un serveur flexible Azure Database pour PostgreSQL.

Résoudre les erreurs / messages d’avertissement lors de la sélection de la table pour la mise en miroir

Lorsque vous créez une base de données mise en miroir, dans la page Choisir des données , vous pouvez recevoir des commentaires visuels concernant des tables spécifiques dans la base de données source. Le tableau suivant fournit une liste des problèmes potentiels, y compris le message affiché et la description associée sur la façon de résoudre le problème.

Code d’état Type d’état Message Descriptif
SCHEMA_DOES_NOT_EXIST ERROR Le schéma {} n’existe pas Le schéma donné n’existe pas. Il a pu être supprimé pendant que Fabric extrayait les informations de table pertinentes. Réessayez.
TABLE_DOES_NOT_EXIST ERROR Dans le schéma {}, la table {} n’existe pas. La table donnée n’existe pas. Il a pu être supprimé pendant que Fabric extrayait les informations de table pertinentes. Réessayez.
FORBIDDEN_CHARS_IN_COLUMN_NAME ERROR Le tableau {}.{} contient des caractères interdits dans le nom des colonnes {} La colonne donnée a un caractère non pris en charge dans le nom. 1
UNSUPPORTED_DATA_TYPE ERROR Table {}.{} a un type de données non pris en charge dans la colonne {} L’un (ou plusieurs) des colonnes de la table n’a actuellement pas de types de données pris en charge. 3
FORBIDDEN_CHARS_IN_TABLE_NAME ERROR Le tableau {}.{} contient des caractères interdits dans le nom Le nom de la table comporte des caractères non pris en charge. 1
NOT_REGULAR_TABLE ERROR Table {}.{} n’est pas une table normale Le type de table n’est pas pris en charge pour la mise en miroir. 2
HAS_PRIMARY_KEY Ok Table {}.{} a une clé primaire La table est une table normale et a une clé primaire valide utilisée pour la mise en miroir.
HAS_UNIQUE_INDEX Ok Table {}.{} a un index unique approprié La table n’a pas de clé primaire, mais a un index unique qui doit être utilisé pour la mise en miroir.
NO_INDEX_FULL_IDENTITY AVERTISSEMENT La table {}.{} n’a pas d’index unique approprié. Utilisation de l’identité complète La table n’a pas de clé primaire ou d’index unique. Il est donc REPLICA IDENTITY FULL nécessaire de prendre en charge la mise en miroir, ce qui peut entraîner des problèmes de performances.

1 Identificateurs d’objet avec un caractère d’espace (' ') ne sont pas pris en charge.

2 Ce type de tableau n’est pas pris en charge pour la mise en miroir. Actuellement, les vues, les vues matérialisées, les tables étrangères et les tables partitionnées ne sont pas prises en charge.

3 Pour obtenir la liste des types de données non pris en charge, consultez Limitations. Seules les colonnes avec les types suivants sont prises en charge :

  • bigint
  • bigserial
  • boolean
  • bytea
  • character
  • character varying
  • date
  • double precision
  • integer
  • numeric
  • real
  • serial
  • oid
  • money
  • smallint
  • smallserial
  • text
  • time without time zone
  • time with time zone (* pas comme clé primaire)
  • timestamp without time zone
  • timestamp with time zone
  • uuid

Dans Postgres, deux valeurs « time with time fuseau » qui correspondent exactement au même moment, mais dans des fuseaux horaires différents, sont considérées comme différentes. Par exemple : 06:24:00.59+05 et 05:24:00.59+04 correspondent au même temps d’époque, mais Postgres les traite différemment.

Modifications de la capacité de Fabric ou de l’espace de travail

La cause Résultat Résolution recommandée
Capacité de l’infrastructure suspendue/supprimée Arrêt de la mise en miroir 1. Reprendre ou affecter une capacité à partir du portail Azure
2. Accédez à l’élément de base de données mise en miroir Fabric. Dans la barre d’outils, sélectionnez Arrêter la réplication.
3. Démarrez la réplication en sélectionnant la base de données miroir pour l’élément mis en miroir dans le portail Fabric.
Capacité de l’infrastructure reprise La mise en miroir n’est pas reprise 1. Accédez à l’élément de base de données mise en miroir Fabric. Dans la barre d’outils, sélectionnez Arrêter la réplication.
2. Démarrez la réplication en sélectionnant la base de données miroir pour l’élément mis en miroir dans le portail Fabric.
Espace de travail supprimé La mise en miroir s’arrête automatiquement Si la mise en miroir est toujours active sur le serveur flexible Azure Database pour PostgreSQL, connectez-vous à l’aide d’un administrateur de serveur et exécutez les commandes suivantes sur votre serveur PostgreSQL : select azure_cdc.list_tracked_publications();, utilisez le nom de publication retourné et exécutez select azure_cdc.stop_publication(<publication_name>);
La capacité d’évaluation de l’infrastructure a expiré La mise en miroir s’arrête automatiquement Consultez la capacité d’évaluation Fabric expire.
Capacité de l’infrastructure dépassée Pauses de mise en miroir Attendez que l’état de surcharge soit terminé ou mettez à jour votre capacité. En savoir plus sur les actions que vous pouvez effectuer pour récupérer à partir de situations de surcharge. La mise en miroir se poursuit une fois la capacité récupérée.
Autres erreurs de ressources La mise en miroir est désactivée Pour vous assurer que vos ressources de calcul ne sont pas affectées et réduire l’impact sur le serveur flexible Azure Database pour PostgreSQL, la mise en miroir désactive les erreurs de ressources persistantes.
« Les utilisateurs peuvent accéder aux données stockées dans OneLake avec des applications externes à Fabric » désactivé « Réplicateur - Les tables ne peuvent pas atteindre l’état de réplication » Activez le paramètre Locataire Les utilisateurs peuvent accéder aux données stockées dans OneLake avec des applications externes à Fabric.

Requêtes SQL pour la résolution des problèmes

Si vous rencontrez des problèmes de mise en miroir, effectuez les vérifications suivantes au niveau du serveur à l’aide des vues système et des fonctions pour valider la configuration.

  1. Exécutez la requête suivante pour vérifier si les modifications sont correctement transmises :

    select * from azure_cdc.tracked_publications;
    

    Vérifiez si la publication est active et que l’instantané a été généré. Vous pouvez également vérifier si les lots de modifications suivants ont été générés en interrogeant :

    select * from azure_cdc.tracked_batches;
    
  2. Si la azure_cdc.tracked_publications vue n’affiche aucune progression lors du traitement des modifications incrémentielles, exécutez la requête SQL suivante pour vérifier s’il existe des problèmes signalés :

    SELECT * FROM pg_stat_activity WHERE state = 'idle in transaction';
    
  3. Si aucun problème n’est signalé, exécutez la commande suivante pour passer en revue la configuration actuelle de la base de données PostgreSQL mise en miroir. Confirmez qu'il a bien été activé.

    SELECT * FROM pg_replication_slots;
    

    Les colonnes clés à rechercher ici sont les slot_name et active. Toute valeur en plus t (true) indique un problème potentiel.

  4. Contactez le support si un dépannage est nécessaire.

Identité managée

L’identité managée affectée par le système du serveur flexible Azure Database pour PostgreSQL doit être activée et doit être l’identité principale. Pour plus d’informations, consultez l’identité managée affectée par le système pour le serveur flexible PostgreSQL.

Après l’activation, si l’état du paramètre SAMI est désactivé ultérieurement, puis réactivé, la mise en miroir du serveur flexible Azure Database pour PostgreSQL vers Fabric OneLake échoue.

Vérifiez que le SAMI est activé avec la requête suivante : show azure.service_principal_id;

Autorisations SAMI

Ne supprimez pas les autorisations de contributeur SAMI (System Assigned Managed Identity) du serveur flexible Azure Database pour PostgreSQL sur l’élément de base de données mis en miroir Fabric.

Si vous supprimez accidentellement les autorisations SAMI, la mise en miroir d’un serveur flexible Azure Database pour PostgreSQL ne fonctionne pas comme prévu. Aucune nouvelle donnée ne peut être mise en miroir à partir de la base de données source.

Si vous supprimez les autorisations SAMI du serveur flexible Azure Database pour PostgreSQL ou que les autorisations ne sont pas configurées correctement, procédez comme suit.

  1. Ajoutez le SAMI du serveur flexible en tant qu’utilisateur en sélectionnant l’option ... de sélection sur l’élément de base de données mis en miroir.
  2. Sélectionnez l’option Gérer les autorisations .
  3. Entrez le nom du serveur flexible Azure Database pour PostgreSQL. Fournissez des autorisations de lecture et d’écriture .