Follow

Besoin d'aide

Quelqu'un sait comment ça se fait qu'une base de données MariaDB avec 12 millions de lignes, réduite à 6 millions de ligne, fasse toujours pile 40 Go ?

Des jours que j'essaye de la vider, la carte SD du raspberry pi n'en peut plus 😅, et j'ai toujours plus de place sur le serveur 😆

(c'est le fichier oc_filecache de Nextcloud, pour les curieux⋅ses. Oui, il s'est emmêlé les pinceaux, j'ai pas autant de fichiers…)

Merci 🙏 😃

@Lapineige
Il ne réduit pas la taille des fichiers (les bdd ne le font généralement pas toutes seules) car ça évite de devoir faire regrossir les fichiers plus tard.
Faut que tu fasses un
OPTIMIZE table oc_filecache;
Pour libérer l'espace.

@framasky

> les bdd ne le font généralement pas toutes seules

Je ne comprends pas ce que tu veux dire par là.

> car ça évite de devoir faire regrossir les fichiers plus tard

Idem 😅

> Faut que tu fasses un
OPTIMIZE table oc_filecache;
Pour libérer l'espace.

J'ai essayé, ça a pris une journée, et y'a aucun effet… 😆

(idem pour un occ file:cleanup dans Nextcloud, et pourtant il a compté des tas de fichiers en doublon)

@Lapineige
Alors il te reste une solution : dump sql, suppression de la bdd, import sql.

@framasky j'ai vu proposé sur les forums de faire un "truncate oc_filecache", car le fichier ne contient aucune donnée importante à sauver, et dans l'idée de lui laisser refaire le cache sans doublon cette fois (normalement j'ai supprimé les stockages externes qu'il contaient en double⁴²).

Est-ce que ça ne serait pas une solution intermédiaire plus simple ?

@framasky le problème étant que le truncate prendrait probablement plusieurs jours, et que le dump… ben j'ai plus la place 😅

@Lapineige
> le problème étant que le truncate prendrait probablement plusieurs jours

Je pense que ça peut aller assez vite 🤔

@Lapineige
est-ce qu'un
php occ files:cleanup
réduit ta table ?
files:cleanup tidies up the server’s file cache by deleting all file entries that have no matching entries in the storage table.

@syll yep j'ai essayé mamot.fr/@Lapineige/1069347430

Mais le problème, c'est qu'à priorité il a rentré des tonnes de fois en double des fichiers de 2 stockages externes, qui contiennent un lien symbolique de l'un à l'autre… donc en fait tous les fichiers existent ! Ils sont juste référencés… quelques milliers de fois 😅

@Lapineige
je pense qu'il faut que tu utilises les commandes
occ files:cleanup & occ files:scan
Agir directement sur la base de données risque de corrompre ton système

@syll justement, files:cleanup n'a rien fait, et files:scan, le cron fait ça tout seul, et a généré ces millions de ligne qui ont rempli l'espace disque… (enfin, de ce que j'en comprends)
:(

@Lapineige tu peux essayer d'identifier tes stocakeges externes avec SELECT * FROM `oc_storages` après tu vires toutes les lignes concernat ces stockages externes dans oc_filecache avec un truc du genre  : delete from oc_filecache where storage = 22
limit 1000000 ;
où le 22 est à remplacer par les identifiants des stockages externes
le limit 1000000 c'est pour que ça ne te prennes pas 1000 plombes
et après tu refais un occ file:scan --all
qu'en penses-tu ?

@syll c'est ce que je fais progressivement, j'ai déjà supprimé 6 millions de lignes.

Le problème, c'est que ça ne change rien à la taille du fichier :(

@Lapineige t'as une idée du nombre d'enregistrement dans tes stockages externes ? si ça se trouve il y a 200 millions de lignes

@syll 12,5 millions de ligne quand j'ai diagnostiqué le problème…
J'ai même pas un million de fichiers 😅
Et sur les stockages externes, y'a 12000 lignes, sauf le montage du /home, avec très peu de fichiers mais qui contient des liens symboliques vers les autres stockages externes… je pense que ça a fait une belle boucle 😅

@Lapineige

J'ai des souvenirs très confus que les fichiers InnoDB utilisés par MySQL/MariaDB ne diminuent jamais en taille, sauf à faire un OPTIMIZE_TABLE ou un truc du genre.

Mais c'est trop loin dans mon cerveau embrumé pour que je puisse t'en dire plus ou même t'affirmer avec certitude que ce que je dis est correct.
Bref, je lance juste une piste...

Sign in to participate in the conversation
La Quadrature du Net - Mastodon - Media Fédéré

Mamot.fr est une serveur Mastodon francophone, géré par La Quadrature du Net.