-
Q : Quelles sont les causes des incohérences de données dans une tâche de vérification des données ?
Les causes courantes sont les suivantes :
La tâche de migration ou de synchronisation des données présente une latence.
La base de données source effectue une opération ADD COLUMN avec une valeur par défaut alors que la tâche présente une latence.
La base de données de destination reçoit des écritures de données provenant de sources autres que DTS.
La base de données source d'une tâche pour laquelle la fonctionnalité de fusion de plusieurs tables est activée exécute une opération DDL.
La tâche de migration ou de synchronisation des données utilise la fonctionnalité de mappage des noms de bases de données, de tables ou de colonnes.
-
Q : Pourquoi une tâche de vérification du schéma détecte-t-elle une différence au niveau de isRelHasoids ?
Les bases de données PostgreSQL antérieures à la version 12 prennent en charge la création de tables avec
WITH OIDSafin d'ajouter une colonne d'identifiant d'objet global (OID). Si la source d'une tâche de vérification du schéma spécifieWITH OIDSlors de la création des tables et que la destination est une version PostgreSQL ultérieure qui ne prend pas en chargeWITH OIDS, la tâche signale une différence isRelHasoids. -
Q : Une différence isRelHasoids signalée par une tâche de vérification du schéma nécessite-t-elle une attention particulière ?
Non.
-
Q : DTS synchronise-t-il ou migre-t-il la colonne d'identifiant d'objet (OID) ?
La colonne d'identifiant d'objet (OID) est générée automatiquement lorsque
WITH OIDSest spécifié. DTS ne synchronise ni ne migre ces données, que la destination prenne ou non en charge cette colonne. -
Q : Comment vérifier si une table possède une colonne d'identifiant d'objet (OID) ?
RemarqueRemplacez
<table_name>dans les commandes par le nom de la table que vous souhaitez interroger.Commande SQL :
SELECT relname AS table_name, relhasoids AS has_oids FROM pg_class WHERE relname = '<table_name>' AND relkind = 'r';Commande client :
\d+ <table_name>
-
Q : Comment résoudre les problèmes d'incohérence des données signalés dans un rapport de vérification complète des données ?
Vous pouvez résoudre les problèmes en suivant ces étapes :
Examinez le rapport de vérification pour identifier les valeurs source et de destination pour chaque colonne, et confirmez quelles colonnes et valeurs sont incohérentes.
Sur la base du rapport de vérification, connectez-vous manuellement aux bases de données source et de destination et comparez les valeurs divergentes pour déterminer si elles sont attendues.
Confirmez qu'aucune donnée n'a été écrite dans la source ou la destination pendant la vérification. Si vous ne pouvez pas le garantir, nous vous recommandons de suspendre les écritures vers la base de données source pendant les heures creuses, puis de redémarrer la vérification.
Si les différences persistent, vous pouvez activer temporairement SQL Explorer (paiement à l'utilisation) sur la source et la destination, et utiliser les journaux d'audit pour vérifier si les colonnes ont été modifiées.
Les différences concernant certains attributs (tels que
SECURITY_TYPE) constituent un comportement attendu et peuvent être ignorées.Une vérification complète des données réussie confirme la cohérence des données après des modifications backend non standard.
Les incohérences de la vérification complète des données sont généralement sans rapport avec les différences de schéma. Nous vous recommandons d'exécuter manuellement
count(*)pour comparer le nombre de lignes entre les bases de données source et de destination afin d'effectuer une vérification supplémentaire.
-
Q : Pourquoi DTS affiche-t-il la progression de la tâche comme incomplète (par exemple, 41 %) alors que la transmission des données est terminée ?
Le pourcentage de progression de la tâche DTS couvre deux étapes : la transmission des données (migration complète des données) et la vérification des données. Une fois la migration complète des données terminée, la progression restante reflète la vérification des données en cours. La vérification des données est une vérification de cohérence indépendante qui s'exécute après la fin de la transmission complète des données. La tâche globale est considérée comme terminée uniquement lorsque la progression de la vérification atteint 100 %.
Si vous devez confirmer les données immédiatement après la fin de la transmission, vous pouvez vous connecter manuellement à la base de données de destination pour vérifier les données sans attendre la fin de la vérification.
-
Q : Causes et solutions des requêtes SQL lentes pendant l'étape de vérification complète des données
Cause : Pendant l'étape de vérification complète des données, DTS lit les grandes tables par fragments en utilisant l'ID de clé primaire. Lorsque le volume de données est important, les requêtes par fragment prennent plus de temps et peuvent provoquer des requêtes SQL lentes sur la base de données source.
Solution :
Vérifiez d'abord si la tâche de vérification complète des données s'est arrêtée. Si c'est le cas, aucune requête de ce type ne devrait être générée.
Si la tâche de vérification est toujours en cours et affecte votre activité, nous vous recommandons d'exécuter la vérification complète des données pendant les heures creuses, ou de suspendre la tâche de vérification et de la redémarrer pendant les heures creuses.