ZRM Community, créer une sauvegarde MySQL complète

zrm-community-mysql-backupDepuis maintenant 3 mois, j’effectue une multitude de « backup mysql » avec l’aide de ZRM.
J’ai mis la main sur un article d’Alolita Sharma publié dans le Linux Journal de septembre 2008 :
Simplifying Backups with Zmanda Recovery Manager.

Il s’agit d’une présentation de la version « bonbon » de Zmanda Recovery Manager : ZRM Enterprise. Ce puissant outil utilise une interface graphique accessible via le web.

Pour les mordus de la ligne de commande, ZRM Community permet d’effectuer des sauvegardes et de récupérer rapidement des bases de données MySQL avec la même efficacité via un terminal.

Voici comment installer la version Community. Plusieurs options s’offrent à vous, je présenterai ici la démarche à suivre pour une utilisation via SSL et des sauvegardes de type « logique ».
Vous devez adapter cette démarche à votre distribution linux. J’utilise pour ma part Debian Etch. Vous avez besoin d’un serveur et d’un poste de travail, tous les 2 équipés de mysql-server. L’ensemble des bases de données du serveur sera sauvegardé sur le poste de travail.

Votre version de MySQL doit supporter OpenSSL. Pour effectuer une vérification, vous pouvez vous référer à mon article précédent :
Connexion SSL-MySQL(5.0.32), avec openSSL sur Debian Etch

 

Créer l’utilisateur MySQL sur les 2 machines (serveur + poste de travail)

GRANT LOCK TABLES, SELECT, FILE, RELOAD, CREATE, DROP, INDEX, SHUTDOWN, INSERT, ALTER, SUPER, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW ON *.* TO 'zrm' IDENTIFIED BY 'passwd' REQUIRE SSL;

FLUSH PRIVILEGES;

 

Télécharger ZRM Community

www.zmanda.com/download-zrm
Choisir sa version (2.1 est utilisé ici)
Le « serveur » utilise le fichier client.
Le « poste de travail » utilise l’autre fichier.
Lien direct pour serveur sur Debian, 2.1.
Lien direct pour poste de travail sur Debian, 2.1.

 

Installer ZRM Community

Serveur :

dpkg -i mysql-zrm-client*.deb

Poste de travail :

dpkg -i mysql-zrm_*.deb

 

Éditer le fichier config ZRM sur « Poste de travail »

nano /etc/mysql-zrm/mysql-zrm.conf

 

  • backup-mode="logical"
  • destination="{dossier des sauvegardes}"
  • user="zrm"
  • password="{votre passwd}"
  • host="{ip du serveur}"
  • ssl-options="--ssl --ssl-ca=/etc/mysql/openssl/ca-cert.pem --ssl-key=/etc/mysql/openssl/client-key.pem --ssl-cert=/etc/mysql/openssl/client-cert.pem"

 

Créer les certificats SSL (CA)

Veuillez vous référer à mon dernier article :
https://www.momocello.com/creation-de-certificats-ssl-pour-mysql-avec-openssl/

 

Sauvegarde via ZRM :

mysql-zrm-scheduler --now --backup-set manuel

« manuel » = nom de votre choix sous-répertoire de sauvegarde

 

Récupération :

mysql-zrm --action restore --backup-set manuel --source-directory <dossier des sauvegardes>/manuel/xxxx

« manuel » = nom de votre choix sous-répertoire de sauvegarde
<dossier des sauvegardes> = spécifié dans /etc/mysql-zrm/mysql-zrm.conf (poste de travail)
xxxx = nom de dossier de la sauvegarde à restaurer (voir répertoire « manuel »)

 

Récupération par DATABASE via ZRM :

mysql-zrm --action restore --backup-set manuel --database "ma_database" --source-directory <dossier des sauvegardes>/manuel/xxxx

« manuel » = nom de votre choix sous-répertoire de sauvegarde
<dossier des sauvegardes> = spécifié dans /etc/mysql-zrm/mysql-zrm.conf (poste de travail)
xxxx = nom de dossier de la sauvegarde à restaurer (voir répertoire « manuel »)

 

Création d’une « cron job sur le poste de travail » à 2h22 tous les jours :

nano /etc/cron.d/zrm

22 2 * * * root mysql-zrm-scheduler --now --backup-set dailyrun

Redémarrer cron :

/etc/init.d/cron restart

 

Voilà!