2017-03-26 3 views
1

J'ai une configuration Cassandra à un seul nœud pour mon application. Pour récupérer de l'espace disque occupé par des enregistrements supprimés (enregistrements désactivés), j'ai déclenché un nodetool compact pour mon espace de clés. Malheureusement, ce processus de compactage a été interrompu. Maintenant, lorsque j'essaie de redémarrer le service, il ne reconnaît pas l'espace de clé (à partir du répertoire de données configuré dans cassandra.yaml) pour lequel le compactage était en cours lorsqu'il a été interrompu. D'autres espaces de clés tels que system et system_traces sont lancés avec succès à partir du même répertoire de données.Cassandra: Impossible de lire l'espace-clé à partir du répertoire de données

Est-ce que quelqu'un a déjà rencontré un problème similaire? De même, les pointeurs permettant de restaurer un espace de clé uniquement à partir de fichiers de données seraient d'une grande aide (pour le manque de maintenance des instantanés). PS: En analysant plus loin, il a été constaté qu'une commande rm rm sur le répertoire de données cassandra a été émise mais immédiatement annulée. La plupart des données semblent être en place, mais il est possible que le fichier Data.db de l'espace système ait été perdu. Y a-t-il un moyen de récupérer de cet état?

Répondre

0

On dirait que vous avez corrompu votre configuration en supprimant les fichiers d'espace de clés système, par conséquent Cassandra pourrait ne pas vérifier la même chose au démarrage.

Essayez ceci:

  1. Télécharger même version de Cassandre nouveau.

  2. Créez vos keyspace & schémas cf

  3. Déplacer tout anciennes données reste à nouveau répertoire de données (cassandra charge uniquement les données non corrompues) -

sudo mv/data/cassandra_old/data/[espace de touches]/[cf] - [md5-old]/*/données/cassandra_new/data/[espace de touches]/[cf] - [md5-new]/

Il devrait le résoudre si je comprendre le problème correctement.

+0

Merci beaucoup. Ça a marché! –