Sauvegarde et restauration

Sauvegarde

# sauvegarde la base de données et les fichiers (exécutable)
/srv/scripts/backup
  • écrase le fichier /srv/backups/dump_without_files.backup avec un export de la base de données sans les fichiers (pour avoir des dumps léger sur les environnements de développement par exemple)
  • écrase le dossier /srv/backups/dump avec un dump binaire
  • envoie tout via restic sur le B3 pour archivage

La sauvegarde est executée chaque jour à 2h (tâche cron).

Restauration

# restaure la base de données et les fichiers (exécutable)
/srv/scripts/restore-last-backup
  • récupère la dernière snapshot restic
  • arrête la BDD et l'API
  • applique le dump
  • redémarre la BDD et l'API

Cette procédure est lancée tous les dimarches sur la machine de dev.

Lister les backups présents sur restic

restic snapshots

Récupérer un backup

restic restore latest --no-lock -t /

Mise à jour de postgres

Pour la mise à jour de version majeure de postgres, pour le moment on lance un backup, on supprime le dossier postgres dans /srv/www/camino/ et on relance postgres. Ensuite, on relance un pg_restore, ça prend une vingtaine de minutes On a regardé du côté de pg_upgrade (https://github.com/docker-library/postgres/issues/37) mais ça a l'air assez complexe à mettre en place