Gandi Wiki


Vous êtes sur la page d'une question

répondue

Question "Sauvegarde mysql", par Pierre C.

Bonjour,

Une autre question à ce sujet. J'ai vu et utilisé le mysqldump, et je constate qu'on peut facilement le backuper par Gsync, mais je me demandais si la méthode exposée ci-après présentait des risques:

- mes bases sql sont le sur le disque attaché grâce à un lien symbolique

- j'utilise Gsync pour sauvegarder direct le répertoire mysql avec ttes les bases vers un disque de sauvegarde

Question: y-a-t-il un risque à cette méthode … ce qui me vient à l'esprit c'est le possible risque de collision au moment de la sauvegarde avec une écriture à ce moment, probablement mieux géré par le dump mysql … quelqu'un a-t-il un avis sur le sujet ?

Si quelqu'un me dit attention danger, je reviendrai à la méthode mysqldump+cron+gsync !

Une réponse partielle: http://dev.mysql.com/doc/refman/5.0/en/backup-methods.html Ma méthode est recommandée pour peu qu'on fasse un LOCK et FLUSH avant … ça se complique … comment faire ça avant le déclenchement de Gsync pour toutes les tables de toutes les bases … Aïe.

Pierre.

Réponse, par Nicolas C. (Gandi)

Effectivement, copier les fichiers dans le repertoire de donnee de mysql n'est pas recommande comme methode de sauvegarde. Pour peux que les fichiers soient un peu volumineux et/ou la machine subisse un ralentissement, vous avez de grande chance d'avoir des operations sur vos bases qui soit enregistres pendant la copie rendant la sauvegarde inutilisable.

Une methode est d'utiliser mysqlhotcopy (example : http://www.debian-administration.org/articles/311) ou d'utiliser mysqldump pour exporter vos bases et tables.

N'oubliez pas de copier les binlog de MySQL pour pouvoir rejouer les requetes qui seront passees dans la periode entre vos sauvegardes. De ce fait, vous avez un historique precis de toutes les requetes sur votre base.

Complément, par Rémy D.

Tu peux aussi créer un fichier shell (.sh) que tu nommes "baskup.sh" et tu colles ce script:

  #!/bin/sh
  DATE=$(date +%d-%m-%Y-%H-%M)
  mysqldump –user=My_User –password=My_Password –host=Localhost –opt My_Database > /home/My_User/My_Database${DATE}.sql
  gzip /home/My_User/backup/My_Database${DATE}.sql

chmod 755, puis tu le lances: "sh /path/to/your/backup.sh" tu changes les pseudo, password, toutes les infos ta sauvegarde sera faites, tu peux aussi faire un crontab. Retrouves mon tutoriel http://blog.zsx.cz/?page_id=377

Dernière modification: le 27/04/2012 à 16:29 par Rémy D.