-
Notifications
You must be signed in to change notification settings - Fork 1
Procédures
Les commandes ont été testées en intégration uniquement. En production, il peut être nécessaire d'effectuer ces commandes depuis le container db
Arrêter les services accédant à la bdd :
docker stop monitorenv_backend
docker stop monitorenv_geoserver
Terminer les connexions au service postgres
psql -h localhost -U postgres -c "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'monitorenvdb' AND pid <> pg_backend_pid();"
Supprimer la base de données monitorenvdb
psql -h localhost -U postgres -c "DROP DATABASE monitorenvdb;"
exporter le chemin du répertoire contenant la sauvegarde à restaurer
export BACKUP_PATH=/home/monitorenv/backup_prod/2023-06-06/2023-06-05-daily
(without trailing/leading slash)
Restaurer les rôles
sudo gzip -d $BACKUP_PATH/globals.sql.gz
psql -h localhost -U postgres -f $BACKUP_PATH/globals.sql
Restaurer la base de données
nb: on se connecte sur la base postgres, qui permettra d'exécuter la requête DROP DATABASE monitorenvdb;
(combinaison des options -C --create
et -c --clean
)
pg_restore -h localhost -U postgres -d postgres -C -c $BACKUP_PATH/monitorenvdb.custom
docker exec monitorenv_database sh -c "psql -h localhost -U $POSTGRES_USER -f $BACKUP_PATH/globals.sql"
docker exec monitorenv_database sh -c "pg_restore -h localhost -U $POSTGRES_USER -d postgres -C -c $BACKUP_PATH/monitorenvdb.custom"