Восстановление из резервной копии файловой системы: невозможно восстановить или запустить

Серверный RAID вышел из строя несколько дней назад, и мы пытаемся восстановить наш экземпляр Discourse из резервной копии файловой системы. Пока безуспешно.

При запуске ./launcher rebuild app я получаю следующее сообщение об ошибке:

FAILED
--------------------
Pups::ExecError: /root/upgrade_postgres завершился с ошибкой #<Process::Status: pid 46 exit 1>
Место сбоя: /pups/lib/pups/exec_command.rb:112:in `spawn'
Ошибка выполнения с параметрами "/root/upgrade_postgres"

В выводе указано, что достаточно выполнить ./launcher start app, но это также не работает:

+ /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
Не удалось найти образ 'local_discourse/app:latest' локально
docker: Ошибка ответа от демона: доступ к pull для local_discourse/app запрещен, репозиторий не существует или может потребоваться 'docker login': отказано в доступе к запрошенному ресурсу.
См. 'docker run --help'.

Полный вывод обеих команд доступен здесь.

На всякий случай: мой docker ps пуст.

Не уверен, как двигаться дальше, буду благодарен за любую помощь.

Почему бы вам не использовать наши официальные функции резервного копирования и не восстановить файл резервной копии на новый сервер?

Это наш поддерживаемый метод восстановления, и он описан в статье Создание, загрузка и восстановление резервной копии базы данных Discourse

Этот метод предполагает, что у вас есть резервная копия, созданная работающим экземпляром Discourse. У меня её больше нет :cry:

Резервное копирование включено по умолчанию и сохраняется в файловой системе хоста. Если у вас есть резервная копия файловой системы, файлы резервных копий находятся в папке backups…

Функция резервного копирования, похоже, не была включена: я вижу лишь несколько архивов резервных копий с довольно старыми датами изменения…

Полагаю, что в стандартной установке Discourse еженедельное резервное копирование включено по умолчанию.

Возможно, я в итоге воспользуюсь одним из них, но мне всё равно нужен запущенный экземпляр, и при попытке его запуска я постоянно получаю эти ошибки.

Гораздо проще переместить файл резервной копии на другой сервер и следовать инструкциям: Restore a backup from the command line

Что вы имеете в виду под «ещё один сервер»: у меня только один сервер.

Хорошо, давайте сделаем шаг назад.

При запуске пересборки у вас возникает ошибка. Можете ли вы прислать больше, чем просто 4 строки ошибки, чтобы мы точно поняли, что не работает?

Возможно, вы это пропустили, так как я добавил ссылку на полный вывод только в обновлении первого сообщения:

Полный вывод обеих команд доступен здесь.

О, круто!

Итак,

Исходный кластер был выключен некорректно.

Вам нужно выполнить следующее

чтобы сначала запустить базу данных без обновления, а затем выполнить обновление.

Сработало, большое спасибо!