Déploiement
Déploiement • Chapitre 7 : Déploiement et connexion à une base de données

Gestion des sauvegardes

Automatisez la sauvegarde récurrente de vos bases avec des tâches planifiées cron, appliquez la règle de rétention 3-2-1 et synchronisez vos archives sur un stockage cloud externe hors-site (AWS S3).

⏰
Planificateur Cron

Exécution silencieuse chaque nuit aux heures de trafic minimal (ex: 2h du matin).

☁️
Stockage Hors-Site

Copie automatique vers un bucket S3 ou serveur distant indépendant.

🧹
Rétention Automatique

Purge des sauvegardes de plus de 30 jours pour ne pas saturer le disque dur.

🧪
Test de Restauration

Une sauvegarde n'est valide que si sa restauration a été testée avec succès.

automated-backup-cron.sh
#!/bin/bash
# /usr/local/bin/backup_database.sh
set -e

DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/var/backups/mysql"
FILENAME="db_backup_${DATE}.sql.gz"

mkdir -p ${BACKUP_DIR}

# 1. Export compressé
mysqldump -u app_user -p'MonMotDePasseSecret' --single-transaction app_production | gzip > ${BACKUP_DIR}/${FILENAME}

# 2. Copier vers un bucket S3 cloud indépendant
# aws s3 cp ${BACKUP_DIR}/${FILENAME} s3://mon-bucket-backups/mysql/${FILENAME}

# 3. Purger les sauvegardes locales de plus de 14 jours
find ${BACKUP_DIR} -type f -name "db_backup_*.sql.gz" -mtime +14 -delete

echo "✅ Sauvegarde ${FILENAME} terminée avec succès."

# Configuration dans crontab (crontab -e) :
# 0 2 * * * /usr/local/bin/backup_database.sh >> /var/log/backup.log 2>&1

Guide Approfondi & Architecture Système

1. La Règle d'Ingénierie 3-2-1

C'est le standard mondial de sauvegarde adopté par toutes les entreprises sérieuses :
  • 3 Copies : Vos données de production actives + 2 sauvegardes distinctes.
  • 2 Supports Différents : Par exemple, le disque dur local de votre serveur VPS + un espace de stockage objet (AWS S3 ou Cloudflare R2).
  • 1 Copie Hors-Site : Si le datacenter où réside votre VPS prend feu ou subit une inondation, votre copie stockée dans un autre datacenter à 500 km vous permet de ressusciter votre entreprise en quelques heures !

2. Le Paradoxe de Schrödinger de la Sauvegarde

Une phrase célèbre des administrateurs système résume tout :
"Toute sauvegarde se trouve dans un état superposé : elle est simultanément valide et corrompue, jusqu'à ce que vous tentiez de la restaurer !"
Ne vous contentez pas de vérifier que le fichier backup.sql.gz fait 10 Mo. Programmez une simulation trimestrielle où vous restaurez le fichier sur une base de test pour confirmer que toutes les tables et données réapparaissent intactes.

Tableau des Indicateurs Métier de Sauvegarde (RPO & RTO)

IndicateurDéfinitionExemple Pratique
RPO (Recovery Point Objective)Perte maximale de données tolérée dans le tempsRPO = 24h si sauvegarde quotidienne ; RPO = 1h si réplication en continu
RTO (Recovery Time Objective)Temps maximal acceptable pour remettre le service en ligneRTO = 30 minutes pour télécharger le dump et le réinjecter dans MySQL
Fréquence conseilléeCalendrier d'exécutionQuotidien pour bases moyennes, toutes les 6h pour e-commerce actif