Forum Programmation.SQL Changements de paramètres InnoDB explosent mes tables

Posté par  (site web personnel) .
Étiquettes : aucune
0
16
avr.
2009
Bonjour,
j'ai un petit souci avec mes configs MySQL et en particulier les paramètres du moteur InnoDB.
Je viens de rajouter les paramètres suivants pour profiter de mes 8Go de RAM flambants neufs

innodb_data_file_path = ibdata1:2G:autoextend
innodb_buffer_pool_size = 2048M
innodb_additional_mem_pool_size = 256M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 0
innodb_lock_wait_timeout = 40

Sauf que le souci est qu'au reboot de MySQL je recois le mail suivant

WARNING: mysqlcheck has found corrupt tables
bd_prod.actions
Error : Incorrect information in file: './bd_prod/actions.frm'
error : Corrupt
bd_prod.addresses
Error : Incorrect information in file: './bd_prod/addresses.frm'
error : Corrupt
bd_prod.ads
Error : Incorrect information in file: './bd_prod/ads.frm'
error : Corrupt
bd_prod.ads_jobs
Error : Incorrect information in file: './bd_prod/ads_jobs.frm'
error : Corrupt
bd_prod.agencies
[...]
Dieu merci tout est revenu à la normale une fois mes paramètres commentés... Ceci dit il faudrait vraiment que je puisse appliquer ces changements parce qu'à mon avis InnoDB se sent vraiment à l'étroit...

Comment pourrais-je faire ?
  • # Reconstruire les fichiers ib*

    Posté par  . Évalué à 3.

    Salut,

    Quand tu modifies les paramètres innodb (notamment les paramètres innodb_log_file_size et innodb_data_file_path), il faut que le moteur innodb reconstruise les fichiers, sinon le mysql ne démarre pas (ou démarre mal, sans utiliser innodb). Enfin, normalement, y'a des erreurs un peu plus explicites dans les logs (mauvaise taille des iblogfile etc), mais j'imagine que ça doit être ça le problème.

    Quand je fais une opération de la sorte, je prévois tout ça (pas en pleine journée par contre :p) :
    - je dumpe mes bases
    - je droppe les databases
    - j'arrête le mysql
    - j'efface les ib files : rm -f /var/lib/mysql/ib* # sur une debian
    - je relance le mysql (là tu verras que le ibdata et les iblogfile vont se recréer, avec les nouvelles tailles que tu as donné dans le my.cnf, en l'occurence 2g pour les data, 256mo pour les ib logs)
    - je réimporte les bases

    Ca fait un peu beaucoup (certaines phases ne sont pas obligatoires, comme le drop des bases, mais j'ai eu des cas où j'ai dû tout faire, donc maintenant je suis prévenant), mais ça marche très bien :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.