Wiederherstellung fehlgeschlagen bei "EXCEPTION: x von y Uploads wurden nicht nach S3 migriert. S3-Migration fehlgeschlagen für db 'default'."

Dieser Beitrag lag als Entwurf auf meta.discourse.org, während ich das Problem auf meinem Discourse-Server untersuchte. Ich habe das unten beschriebene Problem zwar umgehen können, aber die Tatsache, dass ich keine echte Katastrophenwiederherstellung durchführen konnte (eine Wiederherstellung ohne die Möglichkeit, auf den alten, defekten Server zuzugreifen), ist besorgniserregend. (Die Ursache war ein fehlgeschlagenes Upgrade von Postgres 10 auf 12, aber ich konnte das Update in der Datei app.yml von Discourse lange genug hinauszögern, um die Site-Einstellung enable_s3_uploads zu deaktivieren, bevor ich das Backup erstellte. Ich habe nun dieses Backup erstellt, auf den neuen Server hochgeladen, wiederhergestellt und den Discourse-Site-Betrieb wieder aufgenommen. Ursprüngliche Nachricht:


Ich rekonstruiere eine Discourse-Installation aus einem auf S3 gespeicherten Backup. Die alte Installation war sehr alt – erstmals im Juni 2016 installiert. Ich habe die Wiederherstellung aufgrund eines fehlgeschlagenen Postgres-Upgrades von Version 10 auf 12 mit einer frischen Installation gestartet. Anstatt das Problem zu beheben – da dieser Server eine nicht mehr unterstützte Version von Ubuntu ausführt –, dachte ich, ich würde einfach das neueste Backup nehmen und auf den neuen Server laden. Die Wiederherstellung schlägt jedoch fehl. In den Logs ist der Punkt, an dem ich auf ein Problem stoße, folgender:

[2020-11-23 22:27:32] Übersetzungen werden neu geladen...
[2020-11-23 22:27:32] Uploads werden neu zugeordnet...
[2020-11-23 22:27:32] Uploads werden wiederhergestellt, dies kann eine Weile dauern...
[2020-11-23 22:28:38] AUSNAHME: 465 von 751 Uploads wurden nicht zu S3 migriert. Die S3-Migration für die Datenbank 'default' ist fehlgeschlagen.
[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] Rückgängigmachen wird versucht...

Dies klingt ähnlich wie bei Restore process cancelled at migrating uploads to S3 step - #5 by Jim.Morrison, doch dort gab es keine Hinweise zur Behebung des Problems.

Die Meldung „Bevor Sie posten" im rechten Bereich dieses Schreibfensters schlug zudem Failed to restore DB vor, doch auch dort war nichts Hilfreiches zu finden.

1 „Gefällt mir“

Ich habe hier das gleiche Problem, konnte es aber noch nicht lösen:

Könnten Sie genauer erklären, was Sie hier genau gemacht haben? Wurden diese Einstellungen auf der Admin-Seite → Einstellungen-GUI deaktiviert oder in der app.yml? Konnten Sie es also nach dem Backup wiederherstellen und alles zurückbekommen? Haben Sie diese Einstellung nach dem Backup wieder aktiviert? Danke

Dies wurde beim Bearbeiten der Datei app.yml vorgenommen, und ja, ich konnte alles wiederherstellen. Leider habe ich vor 2 Jahren keine Notizen von meiner Arbeit erstellt, und die Details sind im Laufe der Zeit verloren gegangen. Ich habe „Uploads in Backup einschließen“ nicht wieder aktiviert, aber ich denke, ich werde es jetzt tun – hoffentlich ist das Problem, das ich zuvor hatte, behoben.

1 „Gefällt mir“

Haben Sie nach der Wiederherstellung defekte Links zu Anhängen in den Beiträgen gefunden?

Soweit ich mich erinnern kann nicht. Viel Glück!