mardi 18 mars 2014

Comment gérer un dump mysql trop important

Je me suis retrouvé en production à devoir réinstaller un dump mysql très très lourd. Il faisait 22 Go.

Ce dump était très long a executer car il y avait des ordre d'insertion trop nombreux sur une table spécifique.

A chaque fois que je voulais ouvrir le fichier dans un éditeur de texte il plantait ou était inutilisable car la mémoire qui lui était alloué etait totalement pleine.

C'est ici qu'il faut sortir l'outil sed avec son option -i (inplace).

Bien entendu je recommande de faire un backup du fichier avant de se livrer à cette petite aventure.

 sed -i '/INSERT INTO `table_ou_il_y_a_trop_dinsertion`/c\-- removed' mondump.sql

La commande -i signifie inplace, le fichier sera changé directement sans passer par une copie intermédiare
le c\ signifie change, c'est donc toute la ligne ou cette expression a été trouvé qui sera changée.