파일시스템 백업에서 복구: 재구축 및 시작 실패

며칠 전 서버의 RAID가 고장 났고, 파일시스템 백업에서 Discourse 인스턴스를 복구하려고 시도 중입니다. 아직 성공하지 못했습니다.

./launcher rebuild app 명령을 실행하면 다음과 같은 오류 메시지가 표시됩니다:

FAILED
--------------------
Pups::ExecError: /root/upgrade_postgres failed with return #<Process::Status: pid 46 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params "/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
Unable to find image 'local_discourse/app:latest' locally
docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.

두 명령의 전체 출력은 여기에서 확인할 수 있습니다.

혹시 모를 상황에 대비해 말씀드리면, 제 docker ps 출력은 비어 있습니다.

어떻게 진행해야 할지 확실하지 않아 도움이 필요합니다.

공식 백업 기능을 사용하여 백업 파일을 새 서버로 복구하는 방법은 왜 사용하지 않나요?

이것이 우리가 지원하는 복구 방법이며, Discourse 데이터베이스 백업 다운로드 및 복구 생성에서 문서화되어 있습니다.

이 방법은 실행 중인 Discourse 인스턴스로 백업이 준비되어 있다고 가정합니다. 저는 백업이 없어요(더 이상) :cry:

백업은 기본적으로 활성화되며 호스트 파일 시스템에 저장됩니다. 파일 시스템 백업을 수행했다면 백업 파일은 backups 폴더에 있습니다…

백업 기능이 활성화되지 않은 것 같습니다. 수정 날짜가 꽤 오래된 백업 tarball 파일 몇 개만 보이기 때문입니다…

일반적인 Discourse 설치 환경에서는 주 단위 백업이 기본적으로 활성화되어 있다고 생각합니다.

결국 그중 하나를 사용하게 될 수도 있지만, 여전히 실행 중인 인스턴스가 필요하고 실행을 시도할 때마다 계속 그런 오류가 나고 있어요.

백업 파일을 다른 서버로 이동하고 Restore a backup from the command line 를 따르는 것이 훨씬 더 쉽습니다.

“서버가 하나 더 있다”는 건 무슨 뜻인가요? 저는 서버가 하나밖에 없는데요.

자, 한 발 물러서서 생각해 볼게요.

리빌드를 실행하면 오류가 발생합니다. 정확히 어떤 부분이 실패하는지 알 수 있도록, 오류 메시지 4줄이 아닌 더 많은 내용을 붙여넣어 주실 수 있을까요?

상단 게시물 업데이트에 전체 출력 링크를 추가했기 때문에 놓치셨을 수도 있습니다:

두 명령어의 전체 출력은 여기서 확인하세요.

오, 멋지네요!

그래서

The source cluster was not shut down cleanly.

이 메시지를 확인했다면, 다음 내용을 따라야 합니다.

우선 업그레이드 없이 데이터베이스를 시작하고, 그 후에 업데이트를 진행하세요.

잘 작동했어요, 정말 감사합니다!