2017-07-19 2 views
0

Je suis confronté à un problème de perte de données lorsque j'essaie d'insérer des données via plusieurs tâches par lots. Nous avons la version 10.1.21-MariaDB-1~jessie avec InnoDB comme moteur de stockage par défaut.Problème de perte de données d'insertion simultanée de Maria-db

J'ai fait face le scénario suivant où:

valeur de la colonne est manquante si la valeur était présent dans l'état d'insertion généré pour un des disques de la base de données.

La valeur de l'index incrémenté automatiquement de la table indique le numéro 170, mais le nombre réel d'enregistrements était 165. Donc ici 5 enregistrements ont été complètement perdus.

Quelqu'un peut-il me guider sur ce problème pour résoudre ce problème?

+0

Quelle est la source des données? Cela ressemble peut-être que vous avez utilisé un fichier plat corrompu/mal formaté. –

+0

@TimBiegeleisen Source de données est des fichiers texte par lots et le format des données est correcte, j'ai essayé certains de ces fichiers individuellement et cela fonctionne selon les attentes. – Sachin

+0

Affiche le code du travail par lots. – Ben

Répondre

0

Cas 1: Vous avez connaissance de 5 lignes particulières manquantes. Besoin de plus d'informations pour discuter de celui-ci.

Cas 2: COUNT(*) indique 165 mais SHOW TABLE STATUS indique 170 "Lignes". Ne faites pas confiance au STATUS; c'est une estimation.

Cas n ° 3: Vous avez fait un tas de INSERTs, COUNT(*) dit 150, SHOW CREATE TABLE dit AUTO_INCREMENT = 170. Cela dit que certains identifiants ont été "brûlés". Tous les types d'instructions INSERT (multi-lignes, IGNORE, IODKU, REPLACE, ROLLBACK, etc) ont des moyens de gravure des ID. Vivre avec. Si vous décrivez vos déclarations, nous pouvons entrer dans plus de détails.

+0

L'exécution par lots a plusieurs fichiers et ces travaux s'exécutent simultanément. Si j'exécute un travail particulier ayant 170 lignes alors cela fonctionne bien et tous les enregistrements sont insérés correctement. Et dans un autre scénario où pour une valeur de colonne d'enregistrement particulière est manquante, mais un autre enregistrement similaire est inséré correctement (à partir du même fichier) avec la même valeur. – Sachin

+0

@Sachin - Trop de main-agitant; spécificités, s'il vous plaît. –

0

Mon mauvais .... Il n'y avait pas un tel problème de concurrence. Dans l'un des scénarios, le travail par lots supprimait certains enregistrements. Et ces exécutions de travail n'étaient pas séquentielles, après un chaînage de travail séquentiel approprié capable de tracer ce problème.