Récupérer à partir de la sauvegarde du système de fichiers : impossible de reconstruire ni de démarrer

Le RAID du serveur est tombé en panne il y a quelques jours et nous essayons de redémarrer notre instance Discourse à partir d’une sauvegarde du système de fichiers. Jusqu’à présent, sans succès.

Je reçois ce message d’erreur en exécutant ./launcher rebuild app :

ÉCHEC
--------------------
Pups::ExecError : /root/upgrade_postgres a échoué avec le statut de retour #<Process::Status : pid 46 exit 1>
Emplacement de l'échec : /pups/lib/pups/exec_command.rb:112:in `spawn'
Échec de l'exécution avec les paramètres "/root/upgrade_postgres"

Sa sortie indique que je devrais pouvoir simplement lancer ./launcher start app, mais cela échoue avec :

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=3 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e DISCOURSE_DEVELOPER_EMAILS=bravit111@gmail.com,ulysses4ever@gmail.com -e DISCOURSE_HOSTNAME=forum.mmcs.sfedu.ru -e DISCOURSE_SMTP_ADDRESS=class.mmcs.sfedu.ru -e DISCOURSE_ENABLE_CORS=true -e 'DISCOURSE_CORS_ORIGIN=*' -e DONT_PRECOMPILE_CSS=1 -h users-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 8088:80 -p 2222:22 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:b1:c6:37:24:01 local_discourse/app /sbin/boot
Impossible de trouver l'image 'local_discourse/app:latest' localement
docker : Réponse d'erreur du démon : accès au tir refusé pour local_discourse/app, le référentiel n'existe pas ou peut nécessiter une authentification 'docker login' : refusé : accès demandé à la ressource refusé.
Voir 'docker run --help'.

La sortie complète des deux commandes est disponible ici.

Pour information, ma commande docker ps retourne une liste vide.

Je ne sais pas comment procéder et apprécierais toute aide.

Pourquoi n’utilisez-vous pas nos fonctionnalités de sauvegarde officielles pour restaurer un fichier de sauvegarde sur un nouveau serveur ?

C’est notre méthode de récupération prise en charge, et elle est documentée dans Créer, télécharger et restaurer une sauvegarde de votre base de données Discourse

Cette méthode suppose que vous disposiez d’une sauvegarde préparée par une instance Discourse en cours d’exécution. Je n’en ai plus :pleurer:

Les sauvegardes sont activées par défaut et enregistrées sur le système de fichiers de l’hôte. Si vous disposez d’une sauvegarde du système de fichiers, vous trouverez les fichiers de sauvegarde dans le dossier backups…

La fonction de sauvegarde ne semble pas avoir été activée : je ne vois que quelques archives de sauvegarde avec des dates de modification plutôt anciennes…

Je pense que la sauvegarde hebdomadaire est activée par défaut dans une installation Discourse standard.

Je pourrais finir par en utiliser un, mais j’ai quand même besoin d’une instance en cours d’exécution et je continue de rencontrer ces erreurs lorsque j’essaie de la lancer.

Il est beaucoup plus facile de déplacer le fichier de sauvegarde vers un autre serveur et de suivre Restore a backup from the command line

Que voulez-vous dire par « un autre serveur » : je n’ai qu’un seul serveur.

D’accord, revenons un peu en arrière.

Lorsque vous lancez une reconstruction, vous obtenez une erreur. Pouvez-vous coller plus que les 4 premières lignes de l’erreur afin que nous sachions exactement ce qui échoue ?

Vous l’avez peut-être manqué car j’ai ajouté le lien vers la sortie complète uniquement dans une mise à jour du message principal :

Sortie complète des deux commandes disponible ici.

Super !

Donc

Le cluster source n'a pas été arrêté proprement.

Vous devrez suivre cette

pour démarrer la base de données sans la mise à niveau dans un premier temps, puis effectuer la mise à jour ensuite.

Ça a marché, merci beaucoup !