IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQLite Discussion :

Vacuum & Database disk malformed


Sujet :

SQLite

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Par défaut Vacuum & Database disk malformed
    Bonjour,

    J'ai une base de données SQLite sur un appareil tournant sous Windows CE. Tous les 5 jours, j'exécute un VACUUM. Le problème c'est que lorsque je me reconnecte à la base, une fois sur 4, je me retrouve avec le message suivant :

    "The database disk image is malformed'

    J'utilise le "System.Data.SQLite" de phxsoftware pour me connecter sur ma base.

    Je n'ai aucune idée de ce qui a provoqué ce probléme? Windows CE? System.Data.SQLite? ou encore un bug dans SQLite ?

    Si vous avez des idées d'où ça peut venir ou bien de faire des tests pour cerner mon problème, je suis preneur!

    Merci.

  2. #2
    Membre expérimenté

    Inscrit en
    Décembre 2004
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 169
    Par défaut
    Bonjour,

    Je n'ai aucune idée sur l'origine de l'erreur. Mais peux tu faire un export de ta base (.dump) et la recréer sur un autre fichier ? Si oui, tu pourrais alors vérifier si les commandes vacuum génèrent encore une connexion en erreur sur cette autre base.
    Sinon, pas d'autre piste. désolé.
    ++

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Par défaut
    Bonjour,

    Une fois que j'ai l'erreur, je ne peux accéder à ma base, ni au fichier. Donc je ne peux pas faire un .dump Du coup, avant de faire un VACCUM, je fais un backup de la base en la copiant à un autre endroit. C'est pour l'instant le seul moyen que j'ai trouvé...

  4. #4
    Membre expérimenté

    Inscrit en
    Décembre 2004
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 169
    Par défaut
    Bonjour,

    au cas où voici une vieille info :

    http://sqlite.phxsoftware.com/readme.htm

    1.0.47.0 - December 4, 2007

    This is the last version that the FTS1 and FTS2 extensions will appear. Everyone should rebuild their fulltext indexes using the new FTS3 module. FTS1 and FTS2 suffer from a design flaw that could cause database corruption with certain vacuum operations.
    Mais bon, c'est de l'histoire ancienne...
    Sinon, dans la doc officielle :
    The VACUUM command cleans the main database by copying its contents to a temporary database file and reloading the original database file from the copy. This eliminates free pages, aligns table data to be contiguous, and otherwise cleans up the database file structure.
    On comprend mieux la façon dont fonctionne cette commande. Ainsi, si tu n'as plus assez de place sur ton système pour avoir deux fois la base de données, il se peut que la commande échoue en pleine recopie.

    Toujours selon la doc officielle, si une commande SQLite endommage la base, la raison est presque toujours à rechercher ailleurs que dans un éventuel bug du moteur SQLite (celui-ci étant tellement testé et retesté par des milliers de développeurs). Donc... piste SQLite à écarter en priorité.

    ++

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Par défaut
    Merci pour ces précisions Je vais pousser les tests du coté de mon code et de la machine voir si j'arrive à trouver la cause exacte.

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/12/2014, 17h53
  2. [SQLite] Erreur "database disk is malformed"
    Par eric-m dans le forum Android
    Réponses: 2
    Dernier message: 09/11/2011, 21h35
  3. Caractère dans la commande restore database from disk
    Par all4linux dans le forum Développement
    Réponses: 2
    Dernier message: 23/02/2011, 15h49
  4. [Doctrine] [SQLite] Malformed database schema
    Par dourouc05 dans le forum ORM
    Réponses: 7
    Dernier message: 16/07/2010, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo