Cette rubrique répond aux questions fréquentes concernant l'actualisation ou la synchronisation du dictionnaire de données (métadonnées) dans Data Management (DMS). Elle couvre les problèmes généraux, ainsi que les sujets spécifiques à Redis et Oracle.
Général
Pourquoi certaines bases de données ou tables sont-elles absentes de DMS alors qu'elles existent bien dans ma base de données ?
DMS ne lit pas systématiquement en temps réel les informations relatives aux bases de données et aux tables directement depuis la source.
Instances en hébergement sécurisé : DMS collecte et stocke les métadonnées de l'instance. Une collecte complète est déclenchée lors de l'enregistrement initial de l'instance, puis une collecte planifiée s'exécute quotidiennement à 18 h 00.
Instances hors hébergement sécurisé : DMS ne conserve que les informations au niveau de la base de données. Les autres métadonnées sont chargées en temps réel après votre connexion à l'instance.
Les modifications DDL effectuées via DMS déclenchent une collecte incrémentielle des métadonnées. Le schéma mis à jour est généralement visible dans DMS environ 5 secondes après la fin de l'opération, bien que ce délai puisse varier selon la charge de la base de données et l'état des tâches de collecte.
Les modifications apportées via la console de la base de données ou d'autres clients peuvent nécessiter une actualisation manuelle ou une synchronisation du dictionnaire de données.
Pour plus d'informations, consultez la rubrique Collecte, affichage et recherche des métadonnées de base de données.
Comment actualiser manuellement les informations relatives aux bases de données et aux tables ?
Utilisez l'une des méthodes suivantes :
Méthode 1 : Dans la liste des instances située sur le côté gauche de la page d'accueil de DMS, cliquez avec le bouton droit sur l'instance cible, puis sélectionnez Refresh/Synchronize Data Dictionary. Confirmez l'opération et attendez la fin de la collecte.
Méthode 2 : Dans la barre de navigation supérieure, choisissez . Dans la instance list, repérez l'instance cible, puis choisissez .
Si les modifications ont été effectuées via un autre client, reconnectez-vous également à l'instance pour recharger les métadonnées.
Pour plus d'informations, consultez les rubriques Synchroniser le dictionnaire de données d'une instance de base de données et Quand et pourquoi DMS recharge-t-il les métadonnées de la base de données ?.
Que faire si des bases de données restent invisibles après la synchronisation du dictionnaire de données ?
Vérifiez les points suivants dans l'ordre :
1. Vérifiez les autorisations du compte de base de données utilisé par DMS
DMS ne peut collecter les métadonnées que pour les bases de données auxquelles le compte configuré a accès. Ce problème peut survenir avec ApsaraDB RDS for MySQL, ApsaraDB RDS for PostgreSQL, ApsaraDB RDS for SQL Server, PolarDB for MySQL, PolarDB for PostgreSQL, ainsi qu'avec des bases de données tierces ou auto-gérées.
Vérifiez les éléments suivants :
Le compte de base de données et le mot de passe configurés dans DMS sont valides.
Le compte dispose des autorisations d'accès à la base de données cible.
Après la création d'une nouvelle base de données, assurez-vous que celle-ci a été autorisée pour le compte utilisé par DMS.
Pour afficher toutes les bases de données d'une instance, le compte doit disposer des autorisations d'accès sur chacune d'entre elles.
Pour les bases de données PostgreSQL, vérifiez également les autorisations sur la base de données cible, le schéma et les objets associés.
Pour ApsaraDB RDS for MySQL, ApsaraDB RDS for PostgreSQL, ApsaraDB RDS for SQL Server, PolarDB for MySQL et PolarDB for PostgreSQL, une base de données nouvellement créée n'est pas toujours automatiquement autorisée pour le compte utilisé par DMS. Dans ce cas, la base de données n'apparaît pas dans DMS, même après synchronisation du dictionnaire de données. Vous devez d'abord accorder les autorisations d'accès sur la nouvelle base de données au compte utilisé par DMS, puis synchroniser à nouveau le dictionnaire de données.
Les méthodes d'autorisation varient selon le moteur de base de données. Pour plus d'informations, consultez les rubriques suivantes :
ApsaraDB RDS for MySQL : Modifier les autorisations d'un compte standard
ApsaraDB RDS for PostgreSQL : Créer un compte et accorder des autorisations sur la base de données
ApsaraDB RDS for SQL Server : Modifier les autorisations d'un compte
PolarDB for MySQL : Créer et gérer des comptes de base de données et leurs autorisations
PolarDB for PostgreSQL : Créer un compte et accorder des autorisations sur la base de données
Enregistrer une base de données tierce ou auto-gérée - Autorisations du compte de base de données
2. Vérifiez l'état de la connexion à l'instance
Vérifiez les éléments suivants :
L'instance de base de données fonctionne correctement.
L'adresse de la base de données, le port, le compte et le mot de passe sont corrects.
Les adresses IP de DMS ont été ajoutées à la liste d'autorisation de la base de données.
Les groupes de sécurité, les pare-feu et les liens réseau autorisent l'accès depuis DMS.
Si SSL/TLS est activé sur la base de données, la méthode de connexion SSL correspondante est également configurée dans DMS.
Pour plus d'informations, consultez les rubriques Résoudre les problèmes de connexion et d'accès à la base de données et Ajouter les adresses IP de DMS à la liste d'autorisation de l'instance.
3. Vérifiez si les règles de filtrage des bases de données système bloquent l'affichage
Le mode de contrôle Security collaboration masque certaines bases de données système par défaut. Des règles de sécurité peuvent également définir des filtres personnalisés pour les bases de données ou les schémas. Lorsqu'une base de données est filtrée, DMS ne collecte pas ses métadonnées, et celle-ci ne peut ni être recherchée ni affichée.
Pour plus d'informations, consultez les rubriques Bases de données système bloquées par DMS par défaut et Personnaliser les filtres de bases de données système.
4. Vérifiez les autorisations d'accès aux métadonnées de l'utilisateur DMS actuel
Même si le compte de base de données dispose des autorisations nécessaires, l'utilisateur DMS actuel peut ne pas y avoir accès. Lorsque le contrôle d'accès aux métadonnées est activé, les utilisateurs sans autorisations sur l'instance ou la base de données ne peuvent pas voir les ressources correspondantes.
Si les administrateurs voient la base de données mais pas les utilisateurs standards, vérifiez d'abord les points suivants :
Le contrôle d'accès aux métadonnées est-il activé au niveau utilisateur, base de données ou instance ?
L'utilisateur dispose-t-il des autorisations de requête, d'exportation ou de modification sur la base de données cible ?
Un DBA ou un administrateur a-t-il attribué les autorisations requises à l'utilisateur ?
Pour plus d'informations, consultez la rubrique Configurer le contrôle d'accès aux métadonnées.
Pourquoi la synchronisation du dictionnaire de données prend-elle beaucoup de temps ?
La durée de la synchronisation des métadonnées dépend du nombre de bases de données et de tables présentes dans l'instance. Si l'instance contient un grand nombre de tables, la tâche de synchronisation peut prendre plusieurs minutes, voire plus.
Le système impose actuellement un délai d'expiration maximal de 120 secondes pour les instructions SQL de collecte des métadonnées. Si une seule base de données contient un nombre extrêmement élevé de tables (par exemple, de l'ordre de 100 000 ou plus), l'instruction SQL de collecte peut expirer, empêchant la synchronisation des métadonnées de se terminer. Par conséquent, DMS ne peut pas afficher la liste des tables pour cette base de données. Il s'agit d'une limitation connue du système. Le chiffre de 100 000 tables est donné à titre indicatif et ne constitue pas un seuil strict. La survenue d'un délai d'expiration dépend également des performances de la base de données, de sa charge et des conditions réseau.
Recommandations :
Évitez de déclencher la synchronisation de manière répétée sur une courte période.
Attendez que la tâche de synchronisation en cours se termine, puis vérifiez les résultats.
Assurez-vous que la connexion à la base de données est stable.
Vérifiez que les autorisations du compte de base de données n'ont pas changé.
Pour les instances hors hébergement sécurisé, essayez de vous reconnecter à l'instance.
Pour plus d'informations, consultez la rubrique Synchroniser le dictionnaire de données d'une instance de base de données.
Pourquoi certains utilisateurs seulement ne voient-ils pas une base de données ?
Il s'agit généralement d'un problème d'autorisations utilisateur dans DMS, et non d'un problème de collecte des métadonnées.
Vérifiez les points suivants :
Le contrôle d'accès aux métadonnées est-il activé au niveau utilisateur, base de données ou instance ?
L'utilisateur dispose-t-il des autorisations de requête, d'exportation ou de modification sur la base de données cible ?
Un DBA ou un administrateur a-t-il attribué des autorisations sur l'instance ou la base de données à l'utilisateur ?
Si les administrateurs voient la base de données mais pas les utilisateurs standards, privilégiez la vérification de ces éléments.
Pourquoi les bases de données système ou certains schémas ne sont-ils pas visibles ?
Le mode de contrôle Security collaboration masque certaines bases de données système par défaut. Par exemple :
MySQL :
mysql,information_schema,performance_schema, et autres.SQL Server :
master,model,msdb,tempdb, et autres.PostgreSQL : Filtre principalement les schémas système tels que
information_schemaetpg_catalog.
De plus, pour les instances en mode de contrôle Security collaboration, vous pouvez définir des filtres personnalisés en accédant à . Vous pouvez filtrer les bases de données système ou les bases de données métier sensibles par nom exact ou par expression régulière. Pour les bases de données PostgreSQL, le filtre s'applique aux schémas. Après avoir modifié les règles de filtrage, vous devez synchroniser à nouveau le dictionnaire de données, ou attendre la synchronisation automatique quotidienne des métadonnées à 18 h 00 pour que les changements prennent effet.
Pour plus d'informations, consultez les rubriques Bases de données système bloquées par DMS par défaut pour chaque type de base de données et Personnaliser les filtres de bases de données système dans DMS.
Pourquoi les schémas ne sont-ils pas visibles lorsque la base de données est verrouillée ou dans un état anormal ?
Lorsque DMS actualise ou synchronise le dictionnaire de données, il se connecte à la base de données cible et exécute des instructions SQL de collecte des métadonnées. Si l'instance ApsaraDB RDS ou la base de données cible est verrouillée ou indisponible, DMS ne peut pas récupérer les schémas et autres métadonnées. La synchronisation répétée du dictionnaire de données ne résout généralement pas ce problème.
Suivez les étapes suivantes :
Vérifiez l'état d'exécution de l'instance et de la base de données cible dans la console de la base de données cloud correspondante.
Si la base de données est verrouillée, suivez les instructions de la console pour la déverrouiller et rétablir l'accès normal.
Dans DMS, testez la connexion pour confirmer que la base de données est accessible.
Exécutez à nouveau Refresh/Synchronize Data Dictionary et attendez la fin de la collecte avant d'actualiser la liste des objets.
Pour plus d'informations, consultez la rubrique Résoudre les problèmes de connexion et d'accès à la base de données.
Redis
Pourquoi ne vois-je que DB0 après avoir enregistré un cluster Redis via Internet ?
Selon la documentation de DMS, après l'enregistrement d'un cluster Redis tiers ou auto-géré dans DMS, seul DB0 est affiché.
Il s'agit d'une limitation connue du produit. L'actualisation ou la synchronisation répétée du dictionnaire de données ne résout pas ce problème.
Recommandations :
Pour les instances Alibaba Cloud Tair ou Redis, enregistrez l'instance en utilisant la source de base de données Alibaba Cloud.
Pour les clusters Redis tiers ou auto-gérés, confirmez à l'avance les capacités d'affichage de DMS.
Pour plus d'informations, consultez la rubrique Enregistrer une base de données tierce ou auto-gérée.
Comment DMS identifie-t-il le mode cluster Redis ?
La capacité à identifier les architectures de cluster Redis dépend de la source de l'instance et de la méthode d'enregistrement.
Pour les instances de cluster Alibaba Cloud Tair ou Redis, nous recommandons d'enregistrer l'instance en utilisant la source de base de données Alibaba Cloud.
Les clusters Redis enregistrés via Internet ou provenant de sources tierces ou auto-gérées ont des capacités limitées.
Comme indiqué dans la documentation, les clusters Redis tiers et auto-gérés ne prennent actuellement en charge que DB0.
Oracle
Pourquoi les schémas, tables ou colonnes restent-ils absents après la synchronisation du dictionnaire de données pour une instance Oracle ?
Lorsque DMS collecte les métadonnées Oracle, il interroge les tables ou vues système Oracle en utilisant le compte de base de données configuré lors de l'enregistrement de l'instance. Si le compte ne dispose pas des autorisations de lecture sur les objets concernés, les métadonnées telles que les schémas, tables, colonnes, index, contraintes et commentaires peuvent être collectées de manière incomplète, et rester invisibles dans DMS même après synchronisation du dictionnaire de données.
Assurez-vous que le compte de base de données utilisé par DMS dispose au minimum des autorisations de lecture sur les tables ou vues système suivantes :
V$INSTANCESYS.DBA_USERSSYS.DBA_TABLESSYS.DBA_SEGMENTSSYS.DBA_TAB_COMMENTSSYS.DBA_TAB_COLUMNSSYS.DBA_COL_COMMENTSSYS.DBA_SYNONYMSSYS.DBA_OBJECTSSYS.DBA_INDEXESSYS.DBA_CONSTRAINTSSYS.DBA_IND_COLUMNS
V$INSTANCE est généralement un synonyme d'une vue de performance dynamique. Lors de l'attribution des autorisations, il peut être nécessaire que le DBA Oracle accorde les autorisations de lecture sur l'objet sous-jacent SYS.V_$INSTANCE. Les exigences spécifiques dépendent de la version d'Oracle et de la configuration des autorisations.
Après avoir accordé les autorisations requises, exécutez à nouveau Refresh/Synchronize Data Dictionary.