DBAtlas · Atlas d'exploitation des bases de données

translog_corrupted_exception: translog_corrupted_exception

Elasticsearch

Que signifie cette erreur ?

Le journal de transactions (translog) d'un shard n'a pas pu être lu car il est corrompu. Lors de la recovery, Elasticsearch a détecté que le translog avait échoué à son contrôle d'intégrité, et le shard n'a pas pu démarrer.

Cause

Les fichiers translog sont généralement corrompus par une coupure de courant soudaine, un disque plein, une erreur du système de fichiers, une panne matérielle/de disque ou des opérations externes sur le répertoire de données (copie, intervention manuelle). Des écritures partiellement terminées lors d'un arrêt forcé (kill -9) peuvent aussi en être la cause.

Comment la corriger

Essayez d'abord de récupérer les données depuis un réplica ou un snapshot ; si une copie saine existe, reconstruire le shard corrompu à partir de celle-ci est la voie la plus sûre. S'il n'existe pas d'autre copie et que vous acceptez une perte de données, arrêtez le nœud et nettoyez le translog/les données corrompus avec bin/elasticsearch-shard remove-corrupted-data --index <index> --shard-id <n> (cela perd définitivement les données non encore validées ; l'ancien outil elasticsearch-translog a été supprimé en 7.0). L'outil affiche la commande POST _cluster/reroute (allocate_stale_primary, accept_data_loss: true) nécessaire pour affecter le shard après le redémarrage du nœud. Sauvegardez le répertoire de données avant l'opération. Vérifiez l'état et l'espace libre du disque.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur