Archives de catégorie : Sauvegardes

MySQL

Quoiqu’on dise sur le rachat de MySQL par Oracle, cela reste un des systèmes de gestion de bases de données les plus courants dans le monde web.

Sécurisation de l’installation

Il faut lancer l’utilitaire installé par défaut, qui permet déjà de corriger certains points.

sudo mysql_secure_installation

  • A la 1ère question, sur le plugin des mots de passe, vous pouvez l’activer ou pas : ce plugin sert à vérifier que les mots de passe utilisés sont suffisamment fort. Utile en production, cela peut apporter des contraintes trop importantes en développement. Et rien ne vous empêche de vous forcer à mettre des mots de passe forts par vous-même.
  • Ensuite il vous demandera un mot de passe pour root. A renseigner avec un mot de passe fort impérativement.
  • Puis il demandera la suppression des utilisateurs anonymes, à approuver également.
  • Désactivation d’accès distant pour root : sage précaution encore, à accepter.
  • Dernière chose : suppression des bases de test, évitant ainsi un accès trop facile au SGBD.

Avant de terminer, dites oui au rechargement des privilèges (qui ne seront pas effectifs tout de suite, sinon).

Sauvegarde

Pour réaliser la sauvegarde d’une base de données MySQL, une commande peut suffire :

mysqldump table -u user -p >> fichier_destination

Attention : cela vous demandera le mot de passe de l’utilisateur correspondant, de façon interactive.

OpenVZ (Sauvegarde)

La sauvegarde d’une machine virtuelle OpenVZ se fait très simplement, en étant administrateur (root) de la machine.

Préparation de la partition

Pour minimiser le downtime (le temps où le serveur est indisponible), il faut utiliser un paramètre spécial de sauvegarde (cf script ci-dessous) lequel nécessite un partionnement particulier.

En effet, il faut que les machines virtuelles soient créées sur une partition de type LVM mais également il est nécessaire qu’une partie de cette partition reste disponible pour le processus de sauvegarde. Si le partionnement est généralement réalisé à l’installation, il faudra quelques commandes pour libérer de la place sur la partition LVM (par défaut, elle est montée sur /var/lib/vz.

Paramétrage du partitionnement pour une distribution de type PROXMOX

root@host:~# /etc/init.d/vz stop (arrêt du service de virtualisation) 
root@host:~# df -h (pour voir l'allocation de la partition LVM)
Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/sda1 12G 886M 11G 8% /
tmpfs 1000M 0 1000M 0% /lib/init/rw
udev 10M 2,6M 7,5M 26% /dev
tmpfs 1000M 0 1000M 0% /dev/shm
/dev/mapper/pve-lv1 74G 952M 69G 2% /var/lib/vz (on voit que la partition fait 74 Go).

root@host:~# umount /var/lib/vz (on démonte la partition)
root@host:~# e2fsck -f /dev/mapper/pve-lv1 (on vérifie son état, pour ne rien abimer)

root@host:~# resize2fs /dev/mapper/pve-lv1 73G (on diminue la taille de 1 ou 2 Go, ce qui est généralement suffisant)
root@host:~# lvresize --size -2G /dev/mapper/pve-lv1 (on libère 2 Go qui pourra être utilisé par le processus snapshop)

root@host:~# e2fsck -f /dev/mapper/pve-lv1 (on re-vérifie la partition, après ces manipulations)
root@host:~# resize2fs /dev/mapper/pve-lv1 (on met en conformité la partition et le système de fichiers)
root@host:~# mount /dev/mapper/pve-lv1 /var/lib/vz (on remonte la partition)
root@host:~# /etc/init.d/vz start (on redémarre le service de virtualisation)

Script de sauvegarde

Le seul paramètre important est le numéro de machine virtuelle. La première porte souvent l’identifiant 101, c’est ce que j’ai utilisé dans mon exemple.

L’option --snapshot permet de minimiser le temps d’indisponibilité de la machine virtuelle.

#!/bin/sh# 
#
# Svg machine virtuelle
nohup vzdump --snapshot --compress--dumpdir /svg --tmpdir /tmp 101
#
NOM_FICH1=vzdump-101.$(date +%Y%m%d)-$1.tgz
cp /svg/vzdump-101.tgz /répertoire_sauvegarde/$NOM_FICH1

Script ou commande de restauration

vzrestore <fichier_de_sauvegarde> 101

SQL Express (Sauvegarde)

SQL Express

Tout d’abord il faut un script SQL du genre :

BACKUP DATABASE jean TO DISK=N'G:SQLMaBase.bak'GO

On peut faire un peu plus complexe, avec cet exemple généré par SQL Exress :

BACKUP DATABASE [base] TO  DISK = N'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackupbase.bak' WITH NOFORMAT, NOINIT,  NAME = N'base-Complète Base de données Sauvegarde', SKIP, NOREWIND, NOUNLOAD,  STATS = 10GO

Ensuite il faut automatiser ce script. Pour lancer un script SQL sous Windows, il faut utilisre osql :

sqlcmd -S nom_instance -E -i requete.sql -o fichier_sortie.txt

Par exemple :

@echo off 
: copie
sqlcmd -S .SQLEXPRESS -E -i svg_base.sql -o svg.log
rename "C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackupbase.bak" svg_%date:~6,4%%date:~3,2%%date:~0,2%.bak
: supp
if not exist "C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackupbase.bak" goto fin
del "C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackupbase.bak"
: fin

Plus d’infos :

  • http://fadace.developpez.com/mssql/sauve/
  • http://www.asp-php.net/tutorial/sql-server/sauvegarder-bases-de-donnees-sql-express.php?page=1

Plesk (Sauvegarde)

Backup/Restore sur Plesk.
Les utilitaires permettant les sauvegardes/restauration sont dans /usr/local/psa/bin/pleskbackup.

Sauvegarde

C’est simple, une seule commande pour tout sauvegarder :

./pleskbackup all  

Restauration

Je n’indique ici que la restauration complète. Il est possible de ne restaurer qu’une partie de la machine (domaine, client, etc). Il y a deux étapes, une première où est créé un fichier indiquant ce qu’il y a à restaurer (map file name, qui est donc un nouveau fichier créé par pleskrestore), puis la restauration elle-même.

./pleskrestore --create-map   -map 

./pleskrestore --restore  -map  -level all