2013-08-28 5 views
1

il y a quelques temps nous avons eu quelques problèmes de stockage de fournisseur d'hébergement, et (pas sûr si cela est réalisé à notre problème) maintenant nous avons quelques problèmes de cohérence dans la base de données. Le démarrage de l'esclave propre avec le dossier graph.db vide n'entraîne pas pour l'esclave l'obtention de données de copie complète à partir du maître.neo4j erreurs de cohérence de la base de données

Aussi, lorsque vous faites des sauvegardes, nous obtenons des erreurs de vérification de cohérence tout le temps:

Full consistency check 
.................... 10% 
.................... 20% 
.................... 30% 
.................... 40% 
.................... 50% 
.................... 60% 
.................... 70% 
.................... 80% 
...........2013-08-28 08:50:28.184+0000 INFO [org.neo4j]: ERROR: The next block is not in use. 
     DynamicRecord[2987807,used=true,light=false(120),type=0,data=byte[size=120],next=2987808] 
     Inconsistent with: DynamicRecord[2987808,used=false,light=false(105),type=0,data=byte[size=105],next=-1] 
......... 90% 
...................2013-08-28 08:50:29.653+0000 INFO [org.neo4j]: WARNING: The name is empty. 
     PropertyIndexRecord[2035,in use,nameId=2036,propCount=0] 
     Inconsistent with: DynamicRecord[2036,used=true,light=false(0),type=0,data=byte[],next=-1] 
2013-08-28 08:50:29.657+0000 INFO [org.neo4j]: WARNING: The block is empty. 
     DynamicRecord[2036,used=true,light=false(0),type=0,data=byte[],next=-1] 
. 100% 
2013-08-28 08:50:29.658+0000 INFO [org.neo4j]: Inconsistencies found: ConsistencySummaryStatistics{ 
     Number of errors: 1 
     Number of warnings: 2 
     Number of inconsistent STRING_PROPERTY records: 1 

Je ne pouvais pas trouver/google aucune façon de résoudre ce problème, non « mysqlcheck » alternative ou « table de réparation » outil, rien ...

Toute aide/conseil serait grandement appriciated ...

Merci, Andrija

Répondre

4

Neo4j ne provid pas e n'importe quel moyen de le faire. Votre meilleure option peut être de charger dans une sauvegarde plus ancienne si possible. Le problème est que si vous supprimez ces enregistrements corrompus, neo4j va avoir un vérificateur de cohérence pour une partie de la logique (comme la suppression d'une relation va chercher la prochaine relation à lier avec la précédente), donc vous ne serez pas en mesure de les supprimer via l'API normale.

Neo4j pourrait être en mesure de fournir un vérificateur capable de purger ces mauvais enregistrements, mais est-ce quelque chose que les gens voudraient? Ces enregistrements pour la plupart ne peuvent pas être récupérés car la plupart d'entre eux sont des entrées de listes liées dans Neo4j et une fois que vous avez perdu la référence, vous ne savez pas à quelle liste il appartenait.

+1

Quatre années se sont écoulées et rien ne s'est passé. – simonbor

Questions connexes