Aller au contenu

Sauvegardes et restauration

Une sauvegarde non testée n’est pas une sauvegarde. Remizo teste ses restaurations automatiquement.

Type Contenu Fréquence
pg_full base PostgreSQL du workspace, sauvegarde complète selon fullCron (par exemple chaque nuit)
pg_wal archivage continu des WAL toutes les 60 s → restauration à la minute près
hub_pg base du hub mo_hub tâche backups.hub
keycloak export des realms studio et admin tâche backups.keycloak
openbao export chiffré des secrets tâche backups.openbao
silo miroir incrémental du bucket mo-<slug> (coupons, exports) avec la complète

Objectifs : RPO 1 minute (WAL), RTO 15 minutes (restauration testée chaque semaine).

Une instance Silo dédiée (silo-backups), distincte du stockage applicatif, avec Object Lock en mode conformité : une sauvegarde ne peut être ni modifiée ni supprimée avant la fin de sa rétention, même par un administrateur. L’instance est déplaçable sur une autre machine. Bucket mo-backups, préfixe <slug>/<type>/<aaaa>/<mm>/.

Console → workspace → Sauvegardes → Politique (PUT /workspaces/{ws}/backups/policy) :

  • fullCron : planification de la complète ;
  • continuous : archivage WAL activé ;
  • rétention : pitrDays (points de restauration à la minute, par exemple 7 jours), dailyDays, weeklyWeeks (4), monthlyMonths (12) ;
  • restoreTestCron : fréquence du test de restauration automatique ;
  • alertes : âge maximal de la dernière sauvegarde réussie (maxAgeHours), espace libre minimal (minFreeBytes).
  • Sauvegarder maintenant (POST /workspaces/{ws}/backups/run).
  • Restaurer (POST /workspaces/{ws}/backups/restore), depuis une sauvegarde ou à une date et heure précises :
    • target: test_workspace : dans un workspace de test (<slug>-restore-<date> ou la sandbox), sans toucher la production ;
    • target: in_place : sur la production, avec confirmation par saisie du slug (confirmSlug).
  • Télécharger : lien pré-signé valable 15 minutes, audité.
  • Tester la restauration (POST …/backups/{id}/test-restore) : restauration dans un conteneur PostgreSQL jetable, contrôle d’intégrité pg_amcheck et comptages ; le résultat est attaché à la sauvegarde.

La page Sauvegardes affiche l’historique (date, durée, taille, statut, emplacement, empreinte, fenêtre de restauration, dernier test) et les indicateurs : âge de la dernière sauvegarde réussie, volume total, tendance sur 30 jours, sauvegardes non testées.

Alertes : backup_failed, backup_too_old, backup_storage_low, restore_test_failed (Teams, e-mail ou webhook).

Procédure : restaurer demo à T-10 min dans la sandbox

Section intitulée « Procédure : restaurer demo à T-10 min dans la sandbox »
  1. Console → demo → Sauvegardes : vérifier que l’archivage continu est actif et que la fenêtre de restauration couvre T-10 min.
  2. Restaurer → « À une date » → saisir l’heure → cible Workspace de test → demo-sbx.
  3. Suivre l’opération (Infrastructure → Opérations) : restauration de la complète, rejeu des WAL jusqu’à l’heure demandée, redémarrage des moteurs de la sandbox.
  4. Contrôler dans le studio de la sandbox : dernières transactions, soldes d’un client témoin.
  5. Si la production doit être restaurée, refaire l’opération avec la cible En place et la confirmation du slug, en prévenant les caisses (les moteurs passent en drainage pendant l’opération).