• Accueil
  • Mes publications
  • Success Story
    • Virtualbox 4.1 + Bodhilinux 1.2.0 + kernel 3.0, le trio gagnant
    • Passer de Debian Lenny-Postgresql 8.3 à Debian Squeeze-Postgresql 8.4 sans douleurs
    • Sauvegarde des bases Mysql/MariaDB avec Xtrabackup
  • A propos...
  • Me contacter...

A la une !

Cometdoc ou comment convertir tes documents (pdf,word,CAD…) vers le format que tu souhaites ou presque ! AllPinouts, (re)construis toi même tes cables réseaux, vidéos, …. Pas 1, ni 2, ni 3 mais 10 sites de photos libres de droits ! PDFescape, ou l’édition de fichiers PDF 100% online ! Codecademy ou comment apprendre le javascript en s’amusant ! Accessibilité, une nécessité trop souvent oubliée…
Cometdoc ou comment convertir tes documents (pdf,word,CAD…) vers le format que tu souhaites ou presque !
N’avez vous jamais pesté pour avoir eu un document au format pdf qu e vous auriez aimé enrichir, corriger ou simplement récupérer le texte à des fins personnelles ? Cometdoc est un site qui vous propose de convertir vos divers documents dans moultes formats. A vrai dire, c’est un site idéal car toutes les conversions [...]
En savoir plus...
AllPinouts, (re)construis toi même tes cables réseaux, vidéos, ….
Dans la jungle des connectiques actuelles, il devient parfois difficile de trouver un câble pour du vieux matériel que l’on ressort du grenier. Ou tout simplement, vous êtes une de ces personnes qui aime bien comprendre comment les choses fonctionnent. AllPinouts risque de vous rendre heureux car il propose à l’heure où j’écris ce billet, [...]
En savoir plus...
Pas 1, ni 2, ni 3 mais 10 sites de photos libres de droits !
Les réseaux sociaux peuvent être utiles la preuve ! Sur Google+, il m’a été proposé (brave Google), un lien d’Isabelle Mathieu qui a pour titre : « 10 banques d’images libres de droits« . L’article en fait a été publié par Julien sur le site Passion Net. Il nous relate la difficulté pour lui de trouver des [...]
En savoir plus...
PDFescape, ou l’édition de fichiers PDF 100% online !
PDFescape est un site qui va vous permettre d’éditer vos fichiers PDF en ligne avec pour seul outil votre navigateur. Il permet d’éditer vos fichiers à plusieurs niveaux : l’édition du document : à partir de rien ou en uploadant votre fichier l’édition d’un document du net la lecture de vos fichiers pdf la saisie [...]
En savoir plus...
Codecademy ou comment apprendre le javascript en s’amusant !
Codecademy est un site qui vous propose d’apprendre le javascript de manière interactive, amusante et avec des amis. L’inscription est gratuite et s’effectue soit en donnant un email + mot de passe soit via facebook. A l’arrivée sur le site vous disposez d’une console interactive qui vous propose de saisir votre nom dans un premier [...]
En savoir plus...
Accessibilité, une nécessité trop souvent oubliée…
Pour ce dernier billet de l’année, je voudrais mettre en évidence un point auquel on ne pense pas souvent pour la plupart du temps pour ne pas y être confronté. J’ai un ami (Hello Dom) dans mon entourage qui est mal voyant et je voudrais le remercier pour m’avoir éveiller aux problèmes qu’il peut rencontrer. [...]
En savoir plus...
Success Story Sauvegarde des bases Mysql/MariaDB avec Xtrabackup

Sauvegarde des bases Mysql/MariaDB avec Xtrabackup

21 juillet 2011 18:37 0 commentaires
Dans une vie professionnelle passée, j’ai eu l’occasion de faire du développement Web (plateforme LAMP), et donc d’utiliser Mysql. Dans le poste que j’occupe actuellement, j’ai du à nouveau fricoter avec le moteur de base de données Mysql dans un premier temps et migration vers MariaDB depuis quelques mois déjà. Alors pourquoi MariaDB ? Tout simplement parce qu’avec le rachat de Sun par Oracle, les orientations que donne ce dernier concernant les logiciels open source ne sont pas en phase avec ma philosophie. Tout ce que je peux dire, c’est que ce basculement a été totalement transparent que ce soit pour les utilisateurs ou pour moi côté administration.

Rentrons dans le vif du sujet, j’ai donc développé une application client/serveur qui permet de gérer nos calculs de prix de revient et Mysql/MariaDB s’est imposé naturellement à moi sachant que l’alternative qui aurait pu être PostgreSQL est un domaine inconnu pour moi.

Au niveau du script que j’utilise, j’ai opté pour Xtrabackup édité par la société Percona. Je vais vous citer quelques points qui m’ont paru essentiels dans mon choix :

  • Licence GPL
  • permet les backups avec les bases InnoDB ou Myisam
  • ne bloque pas les enregistrements et fait des sauvegardes à chaud des tables InnoDB
  • effectue la sauvegarde sans « charger » le serveur
  • …


Vous trouverez tous les avantages cités par Percona ici. La méthode que j’utilise est une méthode parmi tant d’autres mais elle me donne entière satisfaction, néanmoins, toutes vos remarques sont les bienvenues ! :)

Le serveur est un serveur Debian 6.0 Squeeze qui est para virtualisé via OpenVZ. On ajoute les dépôts de Percona pour permettre l’installation de Xtrabackup :

deb http://repo.percona.com/apt squeeze main
deb-src http://repo.percona.com/apt squeeze main

On installe la clé pour le dépôt :

# gpg --keyserver  hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
... [some output removed] ...
gpg:               imported: 1

# gpg -a --export CD2EFD2A | apt-key add -
puis on met à jour ses dépôts et on installe le logiciel :

# apt-get update && apt-get install xtrabackup
Mon cahier des charges était simple :

  • Sauvegarder les bases de données du lundi au vendredi inclus de 8 à 19h
  • Ne garder que 3 jours de sauvegardes de bases


J’ai donc écrit mon script :

#!/bin/sh

#on purge les backups de plus de 3j
/usr/bin/find /root/backup_sql/mysql_hot_*.tar.gz -type f  -mtime +3 | xargs rm -f 

#on crée la sauvegarde des bases
/usr/bin/innobackupex-1.5.1 --defaults-file=/etc/mysql/my.cnf --user='root' --password='XXXX' --no-lock --stream=tar --slave-info /root/backup_sql | gzip - > /root/backup_sql/mysql_hot_`/bin/date +%m-%d-%Y-%H_%M`.tar.gz
Une petite explication sur les paramètres me parait judicieux :

  • –defaults-file=/etc/mysql/my.cnf : permet de lire les options de votre fichier my.cnf dont Xtrabackup a besoin
  • –user=’root’ –password=’XXXX’ : spécifie le login de l’utilisateur et le mot de passe qui sont utilisés pour effectuer la connexion au serveur
  • –no-lock : permet de ne pas verrouiller les tables lors de la sauvegarde
  • –stream=tar : permet de rediriger le flux standard vers un fichier tar ici
  • | gzip – > /root/backup_sql/mysql_hot_`/bin/date +%m-%d-%Y-%H_%M`.tar.gz : permet de récupérer la sortie standard de l’option précédente pour la compresser à la volée dans un fichier .tar.gz et qui portera un nom du style mysql_hot_12-24-2010-11_00.tar.gz mentionnant ainsi la date ainsi que l’heure de sauvegarde (rappelez vous que j’effectue une sauvegarde toutes les heures)
  • /root/backup_sql : lieu de sauvegarde en local des bases


Ces archives sont également dans la foulée poussées sur un NAS et sur le serveur de secours (ici MixMysql2). Le tout se fait via le cron :

# m h  dom mon dow   command
0       9-19    *       *       mon,tue,wed,thu,fri     /root/innobck.sh && rsync -e ssh -avz --delete-after /root/backup_sql/ root@172.20.1.60:/data/mixmysql/
10      9-19    *       *       mon,tue,wed,thu,fri     /usr/bin/scp /root/backup_sql/*.tar.gz  root@mixmysql2:/root/backup_sql/
Voilà pour la sauvegarde. Passons maintenant à la restauration de nos bases le cas échéant. Comme précédemment, j’ai créé un script de restauration qui effectue toutes les étapes nécessaires :

#!/bin/bash

if [ -z "$1" ]
  then
        echo "usage ./restore.sh nomdufichier a restaurer"
	exit;
fi

#Arret du serveur Mysql
echo "Arret du serveur Mysql"
/etc/init.d/mysql stop

#Renommage du rep des data de mysql && suppression d'une vieille restauration
echo "Renommage du repertoire de donnees Mysql"
rm -Rf /var/lib/mysql_old
mv /var/lib/mysql /var/lib/mysql_old

#Creation du rep data de mysql
echo "creation du repertoire mysql"
mkdir /var/lib/mysql

#Copie de l'archive dans le rep data Mysql
echo "Copie de l'archive a restaurer"
cp /root/backup_sql/$1 /var/lib/mysql

#Décompression de l'archive
echo "Decompression de l'archive"
cd /var/lib/mysql && tar xvzfi $1

#Chgt des droits Mysql
echo "Changement de droits des fichiers"
chown -R mysql:mysql /var/lib/mysql

#Effacement de l'archive dans le dossier data
echo "Purge de l'archive dans le dossier data de mysql"
rm -f /var/lib/mysql/$1

#Relance du serveur
echo "Relance du serveur"
/etc/init.d/mysql start
Le fichier est relativement bien commenter, il faut donc lancer la restauration en invoquant le script adéquat en lui passant en paramètre le nom de l’archive à restaurer :

# ./root/restore.sh mysql_hot_12-24-2010-11_00.tar.gz
Et voilà, le serveur est comme il était le 24/12/2010 à 11h00 :)

Cette méthode est une méthode parmi tant d’autres mais c’est celle qui est en production chez nous. Je vous invite me donner vos retours bons ou mauvais du moment qu’ils sont constructifs. Pour aller plus loin, vous pouvez aller consulter la page officielle d’Xtrabackup sur le site de Percona.

Bonne sauvegarde !





Vous pourriez être intéressé par....

  • Mysql Cluster, toi aussi tu peux y goûter facilement !
  • HeidiSQL, non ça n'a rien à voir avec le dessin animé !

Laisser un commentaire

Cliquez ici pour annuler la réponse.


Image CAPTCHA
Rafraîchir l'image
*

Recherche

Taille de la police
Promouvoir et soutenir le <a href=
Suivre le blog au fil des jours

Blogroll

  • Blog d'iMil
  • Blog de Bapt
  • Blog de Korben
  • Blog de Nicolargo
  • EzUnix
  • Le blog de Maester
  • NetBSDfr

Archives

Catégories

Sponsors

Haut de page

Mots-clefs

administration apache backup bash blog cms code css debian design développement firefox framework free freebsd games git github GNU/Linux google graphisme html javascript jeux linux monitoring mysql navigateur pdf php réseau security server shell ssh sysadmin sécurité thèmes tutorial tutoriel ubuntu unix web webdev wordpress

Mes twitts…

Derniers articles

  • Cometdoc ou comment convertir tes documents (pdf,word,CAD…) vers le format que tu souhaites ou presque !
  • OpenTTD, le jeu version libre de Transport Tycoon Deluxe
  • Box of Bundles, des packs graphiques pour Webdesigners à télécharger gratuitement
  • Monter un NAS/SAN en haute disponibilité en utilisant OpenFiler, Heartbeat et DRDB
  • Calomel, un site plein de tutoriels pour ton architecture réseau

Derniers commentaires

  • [...] on upload le fichier à convertir en...
    By Cometdoc ou comment convertir tes documents (pdf,word,CAD…) vers le format que tu souhaites ou presque ! | Zat's Hall
  • [...] un petit billet sur un jeu qui...
    By OpenTTD, le jeu version libre de Transport Tycoon Deluxe | Zat's Hall
  • Merci pour le lien !...
    By zatmania
  • Merci Alain pour cet encouragement, je me demandais...
    By zatmania

Licence

Contrat Creative Commons
Ce(tte) oeuvre est mise à disposition selon les termes de la Licence Creative Commons Paternité 3.0 non transcrit.