On 18/07/13 17:47, Florent Rivoire wrote:
Un principe pour avoir un backup cohérent :
=> tu mets ton /var/lib/mysql dans un partition qui est un volume LVM
Et ensuite, ton script de backup fait ceci :
=> tu lock chaque base (FLUSH TABLES WITH READ LOCK de mémoire, cf la doc)
=> tu prends un snapshot de ton volume LVM
=> tu unlock les bases (en tout, elles auront été lockées qq secondes maximum)
=> tu backup le contenu du snapshot LVM
=> tu supprime le snapshot
=> et voilà :)
+1 pour cette méthode, qui permet d'avoir un backup cohérent sans
bloquer la base très longtemps. Attention s'il y a beaucoup d'écritures
dans les bases, le CoW d'un snapshot plombe pas mal les IO en écriture.
Perso, je sync aussi le filesystem avant de snapshoter mais je ne sais
pas si c'est mandatory (et je préfère stopper la BdD plutôt que de locker).
Autre solution, qui fonctionne bien avec InnoDB et MyISAM : percona
xtrabackup (http://www.percona.com/doc/percona-xtrabackup/2.1/),
également capable de réaliser un backup consistant à chaud. C'est une
solution intéressante en l'absence de LVM mais qui nécessite MySQL >= 5.1
--
Olivier
_______________________________________________
Liste de diffusion du FRsAG
http://www.frsag.org/