Bilderoptimierung bei Wiederherstellung auf neue Serverinstanz pausieren

Ich versuche, meine Discourse-Instanz auf einen neuen Server zu migrieren. Da ich nur begrenzten Speicherplatz auf dem Server habe, möchte ich zuerst\n\nWie kann ich die Bildoptimierung nach dem anfänglichen Hochladen der Datenbank pausieren und wiederherstellen.\n\nDamit ich überprüfen kann, ob die Wiederherstellung gut verlaufen ist, die Sicherungsdatei löschen und die Instanz löschen kann.\n\nMeine Sicherungsdatei ist etwa 200 GB groß und hat die Einstellung “Generierte Thumbnails in Backups einschließen” nicht aktiviert. Wenn dies deaktiviert ist, werden die Backups kleiner, erfordert aber ein erneutes Backen aller Beiträge nach einer Wiederherstellung.\n\nIch werde also bald keinen Speicherplatz mehr haben, wenn meine Instanz die Sicherungsdatei enthält und mit der Optimierung von Bildern beginnt.

Wenn Sie mehr Speicherplatz benötigen, benötigen Sie mehr Speicherplatz.

Aber vielleicht möchten Sie die Bilder per rsync synchronisieren und nur die Datenbank wiederherstellen. Auf diese Weise haben Sie nicht zwei Kopien aller Uploads (und müssen keine Miniaturansichten erneut erstellen).

Danke für deine Hilfe.

Ich habe es versucht, war mir aber nicht sicher, warum meine Wiederherstellung nicht gut funktioniert hat.

Mein Hauptproblem ist, dass meine alte Instanz auf PostgreSQL Version 12 feststeckte, ich keinen Weg fand, sie zu aktualisieren, und versuchte, zu einer neuen, frischen Instanz zu wechseln.

Weißt du, ob es möglich ist, nur die Datenbank auf eine neue Installation wiederherzustellen?

Als ich es versuchte, gab die Instanz nur den Fehlercode 500 zurück und ich musste ganz von vorne anfangen.

Ich würde die Anleitung Move a Discourse site to another VPS with rsync befolgen, aber die PostgreSQL-Dateien nicht kopieren.

Dann würde ich ein reines Datenbank-Backup erstellen und dieses wiederherstellen. Sie würden das Backup ebenfalls per rsync übertragen und die Wiederherstellung über die Kommandozeile durchführen.

Ist das eine sehr alte Version, schätze ich? Schien die Wiederherstellung erfolgreich abgeschlossen worden zu sein?

1 „Gefällt mir“

Danke für die Hilfe.

Ja, aber für eine einfache Wiederherstellung über die Web-GUI und den erwarteten Vorgang benötigen Sie das 4-fache der freien Größe Ihrer Sicherungsdatei.

Hier ist, wie:

  1. Sichern Sie die Sicherungsdatei (oder rsync in /var/discourse/shared/standalone/backups/default)
  2. Sobald die Wiederherstellung initialisiert ist, wird die Sicherungsdatei.gz in /var/discourse/shared/standalone/tmp/restores/ kopiert
  3. Während der Wiederherstellung wird die Sicherungsdatei im Ordner /var/discourse/shared/standalone/tmp/restores/ entpackt
  4. Aus dem temporären Ordner werden Uploads in den nativen Speicherort und SQL-Dumps in die pg-Datenbank eingefügt.

Wie ich die Wiederherstellung erfolgreich geschafft habe.

Während des Wiederherstellungsprozesses, sobald Discourse die Datei aus dem Wiederherstellungsordner in den temporären Ordner kopiert hat, habe ich die ursprüngliche Sicherungsdatei, die über SSH hochgeladen wurde, gelöscht.

Sobald Discourse mit den SQL-Inserts und dem rsync der entpackten Dateien aus dem temporären Ordner nach /var/discourse/shared/standalone/uploads/ fertig war, habe ich die Datei bakupxxx.tar.gz im temporären Ordner über SSH manuell gelöscht, ohne den Wiederherstellungsprozess zu unterbrechen.

Sobald meine Instanz online war und rsync fertig war, habe ich

rm -rf /var/discourse/shared/standalone/tmp/restores/default/*

Wenn Sie eine große Wiederherstellung sichern, scheint mein Prozess zu sterben und die Instanz gibt über das Web den Fehlercode 500 zurück (ist mir zweimal passiert), Sie können den Wiederherstellungsprozess überprüfen, indem Sie in die App wechseln

cd /var/discourse
./launcher enter app

ps aux | grep restore


Auch da meine DB-Wiederherstellung zu lange dauerte

cd /var/discourse
./launcher enter app
watch -n 10 “sudo -u postgres psql discourse -c "SELECT now(), state, query FROM pg_stat_activity WHERE state != ‘idle’;””

half mir, den Fortschritt der DB-Wiederherstellung zu überwachen, um zu sehen, dass die Wiederherstellung noch am Leben ist.

Das ist ja eine Lösung! Wenn das noch jemand findet, glaube ich, dass eine reine Datenbankwiederherstellung funktioniert hätte und etwas einfacher gewesen wäre, aber ich bin froh, dass Sie es gelöst haben!

1 „Gefällt mir“