Base sqlite malformed ou disk is full

Bonjour tous,

A nouveau j’ai des problèmes avec ma base sqlite (spip3.2). Déjà le mois dernier mais ça avait fini par se résoudre grace à l’option « réparer la base ». Cette fois cette fonction n’a aucune efficacité.

Quand je suis dans « gestion des plugins », j’ai un message d’erreur :
Erreur SQL HY000 / 11
database disk image is malformed
**SELECT EXTRAIRE_MULTI(L1.nom, 'fr') AS multi, paquets.prefixe, paquets.constante, paquets.actif, paquets.compatibilite_spip, paquets.attente, paquets.obsolete, paquets.id_paquet, paquets.maj_version, L1.nom, paquets.version, paquets.etat, L1.slogan, paquets.description, paquets.logo, paquets.src_archive, paquets.installe FROM spip_paquets AS 'paquets' INNER JOIN spip_plugins AS L1 ON ( L1.id_plugin = paquets.id_plugin ) WHERE (paquets.id_depot = 0) AND (paquets.actif = 'oui') AND ((paquets.constante IN ('_DIR_PLUGINS','_DIR_PLUGINS_SUPPL'))) ORDER BY multi, paquets.prefixe, paquets.constante DESC, paquets.actif DESC**

Quand je vais dans « couteau suisse » :
Erreur SQL HY000 / 13
database or disk is full
**SELECT id_paquet,p.id_depot,p.version,nom_archive,src_archive,url_archives,url_brouteurFROM spip_paquets AS p, spip_depots AS d WHERE p.id_plugin=327 AND p.id_depot>0**

Quand je tente une réparation de la base, je n’ai aucun message d’erreur durant le déroulement de l’opération mais ça ne change rien.

Quand je tente une sauvegarde de la base :
Erreur fatale lors de la copie de la table spip_paquets

Si je tente une sauvegarde en excluant spip_paquets :
Erreur fatale lors de la copie de la table spip_plugins

Et ainsi de suite.

Donc je prends la base dans /config/bases et je l’ouvre chez moi avec sqlitestudio. Je peux par exemple supprimer des événements de la table événements, des destinataires de la table mailshotdestinataires, mais si je tente de supprimer des trucs dans la table spip_paquets, j’ai cette erreur :

Erreur à la suppression d’une ligne de la table spip_paquets: database or disk is full

Question : connaissez vous une solution pour réparer une base sqlite ? Comment est-ce que sqlitestudio ou sqliteman pourraient faire ça ?

Accessoirement, comment réduire la taille de la base, qui grossit de mois en mois ? Apparemment en supprimant dans la base les newsletters, événements, destinataires, je n’ai rien réduit du tout en poids.

Bon, voilà merci. J’avais déjà prévu de passer en mysql mais je ne m’y suis pas encore collé.

Etienne

Bonjour

Une des solutions pour réparer une base sqlite et de la copier sur son
poste et de faire un dump / reimport de celle ci :
sqlite3 mydata.db ".dump" | sqlite3 new.db

Et mettre à jour le sqlite de son site avec new.db . Bien penser à
renommer correctement le fichier :slight_smile:
Attention il n'est pas garanti que l'intégralité des donnée soit restaurée.

Km

Salut,

i ton hébergeur propose des sauvegardes des fichiers, dépêche toi de récupérer une version fonctionnelle de ton fichier sqlite et de faire la migration.

Pour la manip :

jean amrie

Je m’en sors en allant remettre une sauvegarde issue du dump et en la remettant directement dans config/bases par ftp en la renommant « spip.sqlite ». Et dès que j’ai fait quelques chose de nouveau je sauvegarde ma base.
Mais je vais passer en mysqlite avec fusion quand j’aurai compris comment récupérer le chemin physique de IMG

Le dimanche 06 janvier 2019 à 22:22 +0100, Etienne a écrit :

Bonjour tous,

A nouveau j’ai des problèmes avec ma base sqlite (spip3.2). Déjà le mois dernier mais ça avait fini par se résoudre grace à l’option « réparer la base ». Cette fois cette fonction n’a aucune efficacité.

Quand je suis dans « gestion des plugins », j’ai un message d’erreur :
Erreur SQL HY000 / 11
database disk image is malformed
**SELECT EXTRAIRE_MULTI(L1.nom, 'fr') AS multi, paquets.prefixe, paquets.constante, paquets.actif, paquets.compatibilite_spip, paquets.attente, paquets.obsolete, paquets.id_paquet, paquets.maj_version, L1.nom, paquets.version, paquets.etat, L1.slogan, paquets.description, paquets.logo, paquets.src_archive, paquets.installe FROM spip_paquets AS 'paquets' INNER JOIN spip_plugins AS L1 ON ( L1.id_plugin = paquets.id_plugin ) WHERE (paquets.id_depot = 0) AND (paquets.actif = 'oui') AND ((paquets.constante IN ('_DIR_PLUGINS','_DIR_PLUGINS_SUPPL'))) ORDER BY multi, paquets.prefixe, paquets.constante DESC, paquets.actif DESC**

Quand je vais dans « couteau suisse » :
Erreur SQL HY000 / 13
database or disk is full
**SELECT id_paquet,p.id_depot,p.version,nom_archive,src_archive,url_archives,url_brouteurFROM spip_paquets AS p, spip_depots AS d WHERE p.id_plugin=327 AND p.id_depot>0**

Quand je tente une réparation de la base, je n’ai aucun message d’erreur durant le déroulement de l’opération mais ça ne change rien.

Quand je tente une sauvegarde de la base :
Erreur fatale lors de la copie de la table spip_paquets

Si je tente une sauvegarde en excluant spip_paquets :
Erreur fatale lors de la copie de la table spip_plugins

Et ainsi de suite.

Donc je prends la base dans /config/bases et je l’ouvre chez moi avec sqlitestudio. Je peux par exemple supprimer des événements de la table événements, des destinataires de la table mailshotdestinataires, mais si je tente de supprimer des trucs dans la table spip_paquets, j’ai cette erreur :

Erreur à la suppression d’une ligne de la table spip_paquets: database or disk is full

Question : connaissez vous une solution pour réparer une base sqlite ? Comment est-ce que sqlitestudio ou sqliteman pourraient faire ça ?

Accessoirement, comment réduire la taille de la base, qui grossit de mois en mois ? Apparemment en supprimant dans la base les newsletters, événements, destinataires, je n’ai rien réduit du tout en poids.

Bon, voilà merci. J’avais déjà prévu de passer en mysql mais je ne m’y suis pas encore collé.

Etienne

-- 

Vous pouvez noter ma clé publique de chiffrage OpenPGP : 86FBA556
Elle vous permet de m'envoyer un courriel privé au lieu d'une carte postale ouverte à tous.
---
_______________________________________________
liste spip
[spip@rezo.net](mailto:spip@rezo.net) - désabonnement : envoyer un mail à  [spip-off@rezo.net](mailto:spip-off@rezo.net)

Archives : [https://www.mail-archive.com/spip@rezo.net/maillist.html](https://www.mail-archive.com/spip@rezo.net/maillist.html)

Infos : [https://listes.rezo.net/mailman/listinfo/spip](https://listes.rezo.net/mailman/listinfo/spip)

Documentation de SPIP : [http://www.spip.net/](http://www.spip.net/)

Irc : de l'aide à toute heure : [http://spip.net/irc](http://spip.net/irc)

a j’ai oublié ! avant de sauvegarder je vide le cache.

Le dimanche 06 janvier 2019 à 22:22 +0100, Etienne a écrit :

Bonjour tous,

A nouveau j’ai des problèmes avec ma base sqlite (spip3.2). Déjà le mois dernier mais ça avait fini par se résoudre grace à l’option « réparer la base ». Cette fois cette fonction n’a aucune efficacité.

Quand je suis dans « gestion des plugins », j’ai un message d’erreur :
Erreur SQL HY000 / 11
database disk image is malformed
**SELECT EXTRAIRE_MULTI(L1.nom, 'fr') AS multi, paquets.prefixe, paquets.constante, paquets.actif, paquets.compatibilite_spip, paquets.attente, paquets.obsolete, paquets.id_paquet, paquets.maj_version, L1.nom, paquets.version, paquets.etat, L1.slogan, paquets.description, paquets.logo, paquets.src_archive, paquets.installe FROM spip_paquets AS 'paquets' INNER JOIN spip_plugins AS L1 ON ( L1.id_plugin = paquets.id_plugin ) WHERE (paquets.id_depot = 0) AND (paquets.actif = 'oui') AND ((paquets.constante IN ('_DIR_PLUGINS','_DIR_PLUGINS_SUPPL'))) ORDER BY multi, paquets.prefixe, paquets.constante DESC, paquets.actif DESC**

Quand je vais dans « couteau suisse » :
Erreur SQL HY000 / 13
database or disk is full
**SELECT id_paquet,p.id_depot,p.version,nom_archive,src_archive,url_archives,url_brouteurFROM spip_paquets AS p, spip_depots AS d WHERE p.id_plugin=327 AND p.id_depot>0**

Quand je tente une réparation de la base, je n’ai aucun message d’erreur durant le déroulement de l’opération mais ça ne change rien.

Quand je tente une sauvegarde de la base :
Erreur fatale lors de la copie de la table spip_paquets

Si je tente une sauvegarde en excluant spip_paquets :
Erreur fatale lors de la copie de la table spip_plugins

Et ainsi de suite.

Donc je prends la base dans /config/bases et je l’ouvre chez moi avec sqlitestudio. Je peux par exemple supprimer des événements de la table événements, des destinataires de la table mailshotdestinataires, mais si je tente de supprimer des trucs dans la table spip_paquets, j’ai cette erreur :

Erreur à la suppression d’une ligne de la table spip_paquets: database or disk is full

Question : connaissez vous une solution pour réparer une base sqlite ? Comment est-ce que sqlitestudio ou sqliteman pourraient faire ça ?

Accessoirement, comment réduire la taille de la base, qui grossit de mois en mois ? Apparemment en supprimant dans la base les newsletters, événements, destinataires, je n’ai rien réduit du tout en poids.

Bon, voilà merci. J’avais déjà prévu de passer en mysql mais je ne m’y suis pas encore collé.

Etienne

-- 

Vous pouvez noter ma clé publique de chiffrage OpenPGP : 86FBA556
Elle vous permet de m'envoyer un courriel privé au lieu d'une carte postale ouverte à tous.
---
_______________________________________________
liste spip
[spip@rezo.net](mailto:spip@rezo.net) - désabonnement : envoyer un mail à  [spip-off@rezo.net](mailto:spip-off@rezo.net)

Archives : [https://www.mail-archive.com/spip@rezo.net/maillist.html](https://www.mail-archive.com/spip@rezo.net/maillist.html)

Infos : [https://listes.rezo.net/mailman/listinfo/spip](https://listes.rezo.net/mailman/listinfo/spip)

Documentation de SPIP : [http://www.spip.net/](http://www.spip.net/)

Irc : de l'aide à toute heure : [http://spip.net/irc](http://spip.net/irc)

Une des solutions pour réparer une base sqlite et de la copier sur son
poste et de faire un dump / reimport de celle ci :
sqlite3 mydata.db ".dump" | sqlite3 new.db

Salut,

N'étant pas bien sûr de comprendre ce message (la dernière ligne c'est
du chinois), j'ai essayé de mettre ma base dans dump et de faire une
restauration. Message d'erreur lors de la restauration "table
spip_paquet absente". Et finalement les même problèmes qu'avant.

J'ai bien une sauvegarde d'il y a deux semaines mais ça fait quelques
événements à re rentrer sur le site et i faudrait que je contacte trous
les contributeurs pour leur demander de le faire.

Et je viens de tenter de passer en mysql (j'ai des sauvegardes plus
récente grâce au plugin sauvegarde automatique) mais c'est apparemment
impossible à cause d'un problème que je rencontre chez mon hébergeur
lautre.net. Le nom de la base à créer ne peut pas dépasser 16 caractères
et mon numéro de compte, préfixe obligatoire de la base, fait déjà 16
caractères et est déjà utilisé par un autre site. Je vais aller tenter
de régler ça via la liste d'aide de lautre.

Donc je suis toujours preneur si quelqu'un sait comment je répare une
base sqlite direct dans spip ou sur mon ordi avec des outils linux
(voire windows, que j'ai en virtualbox).

Merci encore ...

--

Vous pouvez noter ma clé publique de chiffrage OpenPGP : 86FBA556
Elle vous permet de m'envoyer un courriel privé au lieu d'une carte postale ouverte à tous.
---