backup MySQL

 
 

Openska vous fait partager l’expertise de ses formateurs. Ici Pierre nous livre les secrets d’une sauvegarde, d’un backup, réussi.

Quel type de sauvegarde pour votre base de données ?

Commençons par définir les différents types de sauvegardes :

  • La sauvegarde à chaud (hot) : les données du serveur sont lues et modifiées en même temps qu’elles sont sauvegardées. Ce type de sauvegarde est lié à de la haute-disponibilité.
  • La sauvegarde à froid (cold) : les données ne sont ni lues ni modifiées durant le processus de sauvegarde.
  • La sauvegarde tiède (warm) : les données ne sont accessibles qu’en lecture par les utilisateurs au moment de la sauvegarde.

Dans la formation « administration MySQL » nous détaillons ces différentes approches, ici nous nous contenterons d’une sauvegarde à froid et d’une restauration.

Créer des sauvegardes logiques avec mysqldump

L’utilitaire mysqldump est fourni en standard avec toutes les distributions du serveur MySQL, aussi bien sous Windows que sous Linux. Il exporte le contenu des tables vers un fichier texte. Voici une liste de ses principales caractéristiques :

  • Il exporte au choix toutes les bases, des bases spécifiques ou bien des tables spécifiques.
  • Il peut être utilisé pour sauvegarder une base de données locale ou distante (selon le type de connexion MySQL utilisé).
  • Les fichiers de sortie sont écrits au format texte et sont donc facilement portables.
  • Il est rapide et pratique pour des petits exports, mais limité dans le cadre d’une stratégie de sauvegarde professionnelle.

L’utilisation de mysqldump est très simple, il suffit d’exécuter le programme avec le nom de la base de données à exporter :

mysqldump -h mysql.domaine.com -u sauvegarde -pmotdepasse production > backup.sql

Nous disposons maintenant d’un fichier backup.sql contenant tous les ordres de créations et d’insertions. Si vous doutez de la portabilité d’un tel fichier, ouvrez-le avec votre éditeur de texte et observez : toutes les informations permettant de reconstruire la base s’y trouvent.

Restaurer votre base de données

La sauvegarde de vos bases de données et tables ne représente que la moitié du processus. L’autre étape consiste à savoir comment les restaurer avant les tirs de charge. Cette procédure est très simple avec MySQL. Comme le résultat de mysqldump est une série d’instructions SQL, il peut être simplement redirigé vers un client MySQL pour recréer la structure de la base de données d’origine et son contenu.

Si vous avez sauvegardé vos bases de données dans un fichier « backup.sql » à l’aide de la commande mysqldump, vous pouvez les restaurer à l’aide de la commande suivante :

mysql -u user -pmotdepasse production2 < backup.sql

Ceci exécute la totalité des ordres SQL de backup.sql sur la base de données production2. Le modèle de données sera alors recréé et les données injectées à l'identique.

Si vous n'avez pas accès à la ligne de commande sur votre serveur vous pouvez utiliser des outils comme PHPMyAdmin pour faire la même chose.

Ces quelques lignes sont une introduction à des thématiques qui sont abordées en formation. Sur MySQL nous abordons cela sur tout ce qui attrait à l'administration mais également sur la partie performance, dans le contexte de tir de charges.

Les programmes de formation d'Openska dédié à MySQL sont nombreux. La formation MySQL développeur permettra aux débutants et aux faux débutants de prendre en main MySQL, à gérer efficacement des requêtes. La formation MySQL administrateur s'adresse aux DBA qui veulent passer un cap dans leur expertise et être en mesure de gérer efficacement MySQL. Nous avons d'autres formations sur les performances MySQL mais également les performances LAMP (Linux Apache MySQL/MariaDB et PHP).

Chacune de ces formations peut se faire sur mesure, nous proposons notamment une approche bootstrap : nous vous formons sur votre projet et nous posons les bonnes bases pour vous permettre de bootstraper. Ensuite notre branche expertise peut intervenir régulièrement pour vous aider à avancer sereinement.

Nos formations MySQL