La règle fondamentale du DevOps : une sauvegarde non testée n'est qu'une illusion. Appliquez la règle 3-2-1, automatisez les exports MySQL avec compression et chiffrement, et maîtrisez la procédure de restauration d'urgence en moins de 10 minutes.
3 copies des données, 2 supports différents, 1 copie hors-site (Cloud distant S3/R2).
Export complet du schéma et des tables sans verrouiller les écritures (--single-transaction).
Chiffre les archives SQL avant transfert pour protéger la confidentialité des données personnelles.
Exercice trimestriel obligatoire de restauration sur un serveur vierge pour mesurer le RTO.
# 1. Script de sauvegarde nocturne automatique (exécuté par cron à 2h du matin) : DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="/var/backups/mysql" mkdir -p $BACKUP_DIR # Export sans coupure (--single-transaction) et compression instantanée mysqldump -u root -p'VeryStrongSecretPass' --single-transaction --quick --routines learnweb_prod | gzip > "$BACKUP_DIR/backup_learnweb_$DATE.sql.gz" # 2. Envoyer la sauvegarde vers un stockage Cloud distant (AWS S3 ou Cloudflare R2) # aws s3 cp "$BACKUP_DIR/backup_learnweb_$DATE.sql.gz" s3://mon-bucket-backups/ # 3. Supprimer localement les sauvegardes vieilles de plus de 7 jours find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +7 -delete # 4. PROCÉDURE DE RESTAURATION D'URGENCE : $ gunzip < /var/backups/mysql/backup_learnweb_20261011_020000.sql.gz | mysql -u root -p learnweb_prod # ✅ La base de données est restaurée dans son état exact de 2h du matin !
mysqldump sans option sur une base en production : FLUSH TABLES WITH READ LOCK). Pendant les 5 minutes que dure l'export, aucun utilisateur ne peut acheter, s'inscrire ou modifier son profil ! Avec --single-transaction, MySQL utilise l'isolation transactionnelle MVCC : il effectue une photographie instantanée cohérente pendant que les utilisateurs continuent d'écrire normalement dans la base sans le moindre ralentissement.
| Niveau de Données | Fréquence de Backup | Emplacement de Stockage | Rétention |
|---|---|---|---|
| Base de données SQL | Quotidienne (nuit à 2h) | Local + Copie distante Cloud S3/R2 | 30 jours glissants |
| Fichiers téléversés (Uploads images) | Synchronisation continue rsync | Bucket S3 / Object Storage | Illimitée avec versioning |
| Configuration Nginx / PM2 | À chaque modification | Dépôt Git privé d'infrastructure | Historique infini |
| Snapshot complet de machine VPS | Hebdomadaire | Centre de données distant de l'hébergeur | 4 semaines |