2011-09-10 4 views
0

Je suis tenté de comprendre ce problème depuis un certain temps et ont examiné toutes les solutions normales. Je tente d'exécuter un .backup sur une base de données sqlite. Je ne pense pas que cela soit important, mais cette base de données particulière est utilisée par Membase et fonctionne également sur le cloud Amazon. Le dossier que je sauvegarde et le dossier dont provient la base de données ont des autorisations 777 (ce qui est la cause normale de ce message). Si je sauvegarde la commande de sauvegarde, elle passe à travers la sauvegarde, puis le processus se bloque tout en consommant l'utilisation du processeur et me conduit à tuer le processus sqlite. J'ai même traversé et chmod 777 le fichier de base de données lui-même.SQLite3: Impossible d'ouvrir la base de données

Voici ce qu'il se passe:

/opt/membase/bin/sqlite3 /mnt/data-store/default-data/default-0.mb '.backup /mnt/data-backup/mbfiles/test.mb' 

Error: unable to open database file 

Quand je le dossier ls-:

drwxrwxrwx 2 membase membase  4096 Sep 10 15:41 . 
drwxrwxrwx 4 membase root   4096 Aug 5 01:10 .. 
-rw-r--r-- 1 membase membase  53248 Sep 10 15:41 default 
-rwxrwxrwx 1 membase membase 849593344 Sep 10 15:41 default-0.mb 

Et le dossier de sauvegarde:

drwxrwxrwx 2 ec2-user ec2-user 4096 Sep 10 15:41 . 
drwxrwxrwx 4 root  root  4096 Sep 3 00:26 .. 

Aussi, parce que je l'entends compte , la permission de/tmp

drwxrwxrwt 3 root root 4096 Sep 10 03:32 . 

J'ai essayé de résoudre ce problème depuis plus d'une semaine, et des idées nouvelles seraient appréciés. Il convient de noter qu'il s'agit d'un environnement de production, le redémarrage n'est donc pas une option.

EDIT: J'ai vérifié et je peux sauvegarder le plus petit fichier « par défaut », mais pas le plus grand db, donc ce qui exclut toute sorte de problème avec les autorisations de dossier. Toute aide serait grandement appréciée.

Merci!

Répondre

0

Cela semble un problème SQLite. Nous avons vu des occurrences sporadiques de cette erreur chez d'autres clients, mais nous n'avons pas été en mesure de la localiser ou de la résoudre pour le moment. Selon les experts SQLite, cela ne devrait jamais se produire ;-)

Pouvez-vous arrêter le processus Membase pour tester davantage? Si c'est le cas, essayez de faire une sauvegarde (assurez-vous que le processus 'memcached' est arrêté) à ce stade exclurait tout problème avec le logiciel accédant au fichier. Si cela ne fonctionne toujours pas à ce stade, je sais qu'il existe des outils pour vérifier une base de données SQL sqlite (juste ne les ai pas au-dessus de ma tête).

Vous pouvez également utiliser un combo de ".dump" et ".restore" via sqlite, mais je ne recommanderais pas d'exécuter cela sur un noeud Membase en cours d'exécution car nous n'avons pas testé les effets.

Perry

Questions connexes