복원이 실패했습니다. 로그를 확인해 주세요

안녕하세요

제 오래된 VPS를 삭제하고 새로운 VPS를 구매했습니다 (모든 것이 Hetzner에서 진행되었습니다). 이제 마지막 편집 내용을 백업/복원하려고 하고 있습니다.

아래와 같은 로그가 출력되었습니다.

[2023-06-04 13:01:35] Making sure /var/www/discourse/tmp/restores/default/2023-06-04-130135 exists...
[2023-06-04 13:01:35] Copying archive to tmp directory...
[2023-06-04 13:01:36] Unzipping archive, this may take a while...
[2023-06-04 13:01:36] EXCEPTION: /var/www/discourse/lib/discourse.rb:137:in `exec': Failed to decompress archive.

gzip: stdin: invalid compressed data--format violated
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

[2023-06-04 13:01:36] /var/www/discourse/lib/discourse.rb:171:in `execute_command'
/var/www/discourse/lib/discourse.rb:137:in `exec'
/var/www/discourse/lib/discourse.rb:33:in `execute_command'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:78:in `decompress_archive'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:23:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:42:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:20:in `restore'
/var/www/discourse/script/spawn_backup_restore.rb:33:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2023-06-04 13:01:36] Trying to rollback...
[2023-06-04 13:01:36] There was no need to rollback
[2023-06-04 13:01:36] Cleaning stuff up...
[2023-06-04 13:01:36] Removing tmp '/var/www/discourse/tmp/restores/default/2023-06-04-130135' directory...
[2023-06-04 13:01:36] Marking restore as finished...
[2023-06-04 13:01:36] Notifying 'inj3ct0r' of the end of the restore...
[2023-06-04 13:01:38] Finished!
[2023-06-04 22:08:20] EXCEPTION: /var/www/discourse/lib/discourse.rb:137:in `exec': Failed to decompress archive.

UI를 통해서 하셨나요, 아니면 CLI를 통해서 하셨나요?

UI로 하고 있어요

이 분야에 대해 전문가라고 할 수는 없지만, 백업이 불완전하거나 손상된 것 같습니다. 다른 백업이 있으신가요?

제 추측으로는 어딘가에서 전체 백업이 전송되거나 업로드되지 않은 것 같습니다.

scp/rsync를 통해 이동해 보시길 권합니다. 파일은 다음 경로에 있어야 합니다.

/var/discourse/shared/standalone/backups/default

솔직히 말하면 이 말은 이미 아픈 상처에 소금을 뿌리는 격이지만, 다음에는 rsync로 /var/discourse/를 동기화한 후 setup-script를 실행하는 것이 훨씬 쉬운 해결책입니다.

하지만 그렇다고 해서 누구나 가끔씩 복원이 실제로 작동하는지 테스트해 보는 것은 중요합니다.

완전히 완료된 것 같은데, 다른 것도 시도해 봤는데 같은 문제가 발생해요.

사실 이미 업로드되었습니다.

디스코스에 대한 경험이 많지 않아서 rsync를 어떻게 해야 하는지, 그리고 어떤 영향이 있었는지 잘 모르겠어요.

이것은 Discourse 백업 파일의 파일명이 아닙니다. .tar.gz 또는 .sql.gz 파일이어야 합니다.

따라서 다운로드를 시도할 때 파일이 손상되었을 수 있습니다.

컨테이너를 다시 빌드해서 다른 컨테이너를 업로드하겠습니다.

결국 성공했습니다!

백업 복원을 여러 번 시도했는데, 이유를 모르겠지만 계속 실패했거든요.

그래서 서버를 Ubuntu 22로 다시 구축한 후 docker-ce를 설치하고,
discourse를 다시 받아서 설치했는데,
모든 것이 정상적으로 작동합니다!

모두 감사합니다 <3

rsync는 모든 Linux 배포판에 포함된 기본 명령어입니다. 이는 한 서버에서 다른 서버로 디렉터리와 파일을 복사하는 방법 중 하나이며, 매우 일반적입니다. 이 명령어는 Discourse의 일부가 아니라 운영체제(OS)에 포함된 것입니다.