Merci de votre aide.
Oui, mais pour une restauration simple à l’aide de l’interface graphique et de la procédure attendue, vous avez besoin de plus de 4 fois la taille de votre fichier de sauvegarde.
Voici comment faire :
- Téléchargez le fichier de sauvegarde (ou utilisez rsync dans
/var/discourse/shared/standalone/backups/default)
- Une fois la restauration initialisée, le fichier de sauvegarde.gz est copié dans
/var/discourse/shared/standalone/tmp/restores/
- Pendant la restauration, le fichier de sauvegarde dans le dossier
/var/discourse/shared/standalone/tmp/restores/ est décompressé.
- Depuis le dossier temporaire, les téléchargements sont synchronisés vers leur emplacement d’origine et le dump SQL est inséré dans la base de données pg.
Comment j’ai réussi à restaurer avec succès.
Pendant le processus de restauration, une fois que Discourse a copié le fichier du dossier de restauration vers le dossier temporaire, j’ai supprimé le fichier de sauvegarde original téléchargé via SSH.
Une fois de plus, lorsque Discourse a terminé les insertions SQL et la synchronisation rsync des fichiers décompressés du dossier temporaire vers /var/discourse/shared/standalone/uploads/, j’ai manuellement supprimé le fichier bakupxxx.tar.gz dans le dossier temporaire via SSH sans interrompre le processus de restauration.
Une fois que mon instance était en ligne et que la synchronisation rsync était terminée, j’ai exécuté :
rm -rf /var/discourse/shared/standalone/tmp/restores/default/*
Si votre processus de restauration de sauvegarde volumineuse semble bloqué et que l’instance renvoie une erreur 500 via le web (ce qui m’est arrivé deux fois), vous pouvez vérifier le processus de restauration en entrant dans l’application :
cd /var/discourse
./launcher enter app
ps aux | grep restore
De plus, comme ma restauration de base de données était trop longue :
cd /var/discourse
./launcher enter app
watch -n 10 “sudo -u postgres psql discourse -c \“SELECT now(), state, query FROM pg_stat_activity WHERE state != ‘idle’;”\”
M’a aidé à surveiller la progression de la restauration de la base de données, pour voir si la restauration était toujours en cours.