복원 실패: "EXCEPTION: 업로드 x개 중 y개가 S3로 마이그레이션되지 않았습니다. 'default' DB의 S3 마이그레이션 실패."

meta.discourse.org에서 이 문제를 해결하는 동안 이 글은 초안으로 남아 있었습니다. 아래에 설명된 문제를 우회할 수는 있었지만, 실제로는 재해 복구(구버전의 고장 난 서버에 접근할 수 없는 상태에서의 복구)를 수행할 수 없었다는 점은 우려스럽습니다. (근본 원인은 Postgres 10에서 12로의 업그레이드 실패였지만, 백업을 만들기 전에 enable_s3_uploads 사이트 설정을 비활성화할 수 있도록 Discourse의 app.yml 파일에서 업데이트를 연기하는 조치를 취했습니다. 이제 해당 백업을 완료하고, 새 서버에 업로드한 후 복원했으며, Discourse 사이트가 다시 실행되고 있습니다. 원본 메시지:


S3에 저장된 백업에서 Discourse 설치 환경을 재구성하고 있습니다. 이전 설치 환경은 매우 오래되어 2016년 6월에 처음 설치되었습니다. Postgres 10에서 12로의 업그레이드가 실패했기 때문에 새로운 설치 환경에서 복원을 시작했습니다. 그 문제를 수정하는 대신… 이 서버는 더 이상 지원되지 않는 Ubuntu 버전을 실행 중이었기 때문에… 최신 백업을 가져와 새 서버에 로드하기로 결정했습니다. 그러나 복원이 실패합니다. 로그에서 문제가 발생하는 지점은 다음과 같습니다:

[2020-11-23 22:27:32] Reloading translations...
[2020-11-23 22:27:32] Remapping uploads...
[2020-11-23 22:27:32] Restoring uploads, this may take a while...
[2020-11-23 22:28:38] EXCEPTION: 465 of 751 uploads are not migrated to S3. S3 migration failed for db 'default'.
[2020-11-23 22:28:38] /var/www/discourse/lib/file_store/to_s3_migration.rb:131:in `raise_or_log'
/var/www/discourse/lib/file_store/to_s3_migration.rb:78:in `migration_successful?'
/var/www/discourse/lib/file_store/to_s3_migration.rb:357:in `migrate_to_s3'
/var/www/discourse/lib/file_store/to_s3_migration.rb:65:in `migrate'
/var/www/discourse/lib/file_store/s3_store.rb:238:in `copy_from'
/var/www/discourse/lib/backup_restore/uploads_restorer.rb:48:in `restore_uploads'
/var/www/discourse/lib/backup_restore/uploads_restorer.rb:30:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:64:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:23:in `restore'
/var/www/discourse/script/spawn_backup_restore.rb:36: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>'
[2020-11-23 22:28:38] Trying to rollback...

이는 *https://meta.discourse.org/t/restore-process-cancelled-at-migrating-uploads-to-s3-step/123233/5*와 유사해 보이지만, 이 문제를 해결하는 방법에 대한 안내가 제공되지 않았습니다.

이 작성 창 오른쪽 패널의 게시 전 메시지에서는 *https://meta.discourse.org/t/failed-to-restore-db/131137*도 제안했지만, 여기에도 도움이 되는 내용이 없었습니다.

저도 동일한 문제에 직면해 있지만 아직 해결하지 못했습니다:

여기서 정확히 어떤 작업을 수행하셨는지 좀 더 자세히 설명해 주시겠어요? 이 설정을 Admin → Settings GUI 페이지에서 비활성화하셨나요, 아니면 app.yml에서 비활성화하셨나요? 그래서 백업 후 복원이 가능했고 모든 것이 정상으로 돌아왔다는 말씀이신가요? 백업 후 이 설정을 다시 활성화하셨나요? 감사합니다

app.yml 파일을 편집한 것이었고, 네, 모든 것을 되돌릴 수 있었습니다. 불행히도 2년 전 작업에 대해 메모를 남기지 않아 시간이 지나면서 세부 사항이 사라졌습니다. ‘백업에 업로드 포함’ 옵션을 다시 활성화하지는 않았지만, 이제 활성화할 생각입니다 — 이전에 겪었던 문제가 해결되었기를 바랍니다.

복원 후 게시글에서 첨부 파일로 연결되는 깨진 링크를 발견하셨나요?

내가 기억하기로는 그렇지 않아. 행운을 빌어!