Fehler beim Wiederherstellen des Backups während der Migration

Könntest du uns bitte Anleitung geben, welche Datei wir im Backup-Tar bearbeiten müssen?

In den Archiven befindet sich eine dump.sql-Datei. Sie müssen diese bearbeiten und dann die modifizierte Version erneut verpacken. Ich habe auch meine anderen Probleme gelöst, indem ich sie bearbeitet habe – einige fehlerhafte benutzerdefinierte Felder, die nach dem Anmelden Abstürze verursachten, wurden entfernt.

Vielen Dank.

Ich werde versuchen, das Backup herunterzuladen, zu entpacken und die Datei gemäß Ihren Anweisungen zu ändern.

Es ist ziemlich beängstigend, all das tun zu müssen, um ein Backup wiederherzustellen.

Ich nehme an, es handelt sich um einen Fehler in der neuen Version.

Aber Backup und Wiederherstellung sind Eckpfeiler eines Disaster-Recovery-Plans.
Sie sollten so robust wie möglich sein, und ein Fehler in diesen Prozessen hat große Auswirkungen.

1 „Gefällt mir“

Nun, ich konnte die Wiederherstellung durchführen, ohne etwas in der Sicherungsdatei zu ändern.

Ich habe es einfach mehrmals versucht und seltsamerweise funktionierte die Wiederherstellung einmal ohne Fehler.

Ich wurde von Discourse ausgeloggt und es funktionierte nicht, bis ich eine Launcher-Rebuild-App erstellt habe.

Aber jetzt funktioniert es einwandfrei.

Ein seltsames Problem.

Das bereitet mir immer noch Probleme beim Wiederherstellen meines Forums aus einem Backup. Es ist bereits mehrere Wochen her, und die Funktion zum Wiederherstellen aus einem Backup scheint immer noch defekt zu sein.

Gibt es dafür eine Lösung?

Soweit ich das beurteilen kann, wechsle ich zwischen Aktualisieren, Prüfen der Tabellenformatierung, Sicherstellen, dass alles zwischen Quelle und Ziel übereinstimmt, und dem Beobachten mehrfacher Fehler. Das könnte funktionieren, vielleicht auch nicht, ohne kleinere Datenbankanpassungen.

Ich habe bereits 2 von 3 Seiten erfolgreich migriert und bin gezwungen, aus psychischen Gründen weniger als eine Stunde pro Tag damit zu verbringen. Ich habe begonnen, mit den Kunden über die Probleme zu sprechen, die dies in Zukunft bei ähnlichen Situationen verursachen könnte. Zucken mit den Schultern

Ich bestehe einfach darauf, die Wiederherstellung durchzuführen, und es funktioniert. Der Fehler meldet eine Spalte, die in der Benutzerprofil-Tabelle nicht existiert. Es muss sich jedoch um einen Timeout-Fehler oder Ähnliches auf der Datenbankseite handeln, möglicherweise ein Fehler auf der PostgreSQL-Seite. Wenn die Spalte nicht vorhanden ist, wird sie nicht automatisch erstellt, wenn Sie auf der Wiederherstellung bestehen.

Jaromir sagt, dass die Änderung des Skripts das Problem löst.

Keiner der Discourse-Entwickler hier scheint sich um dieses Problem gekümmert zu haben, aber es ist ein seltsamer und sehr störender Fehler, da er Ihren Disaster-Recovery-Plan betrifft.

Vielleicht ist das Thema unter den anderen unbemerkt geblieben.

Das ist uns nicht entgangen. Das werde ich morgen als Erstes angehen.

Ich arbeite bereits daran, Backups und Wiederherstellungen zu verbessern, denn niemand sollte sich im Falle einer Katastrophe oder beim einfachen Wechsel auf einen neuen Server darum Sorgen machen müssen.

11 „Gefällt mir“

Großartig. Danke.
Freut mich, das zu hören.

Danke, Gerhard. Ich weiß nicht, ob es dich gerade noch interessiert, aber ich habe auch Probleme mit einer Website, die PG 11 mit GCP verwendet. Es könnte sich lohnen, das zu prüfen, da es den geplanten Umstieg auf PG12 später diesen Herbst beeinflussen könnte.

Ich habe gerade zwei Instanzen aktualisiert, die denselben S3-Backup-Bucket teilen. Ich habe auf einer Instanz ein Backup erstellt und versucht, es auf der anderen wiederherzustellen, und erhielt folgende Meldung:

Keine Migration mit Versionsnummer 20191007140446.

PostgreSQL 11 und 12 werden derzeit nicht unterstützt.

4 „Gefällt mir“

Okay, ich habe die neueste Version von Discourse (tests-passed) auf einem Droplet installiert und die Wiederherstellung von Backups (einschließlich Uploads, ohne S3 für Uploads) funktionierte problemlos.

Wenn Sie weiterhin Probleme bei der Wiederherstellung haben, gehen Sie bitte wie folgt vor:

  • Container neu erstellen:

    cd /var/discourse
    git pull
    ./launcher rebuild app
    
  • Backup entweder über die Weboberfläche oder die Kommandozeile wiederherstellen:

    cd /var/discourse
    ./launcher enter app
    discourse enable_restore
    discourse restore <filename>
    

Wenn es nicht funktioniert, posten Sie bitte die Versionsnummer der Backup-Datei, die Sie wiederherstellen möchten, sowie die Fehlermeldung, die Sie während der Wiederherstellung sehen.

6 „Gefällt mir“

Beide Seiten sind auf Version 2.4.0.beta6 (8fc0cc9aaa). Die Backups (aber nicht die Uploads) befinden sich auf S3.

discourse restore gibt Folgendes zurück:

Starting restore: wonderful-community-2019-10-10-184822-v20191007140446.tar.gz
[STARTED]                                                                              
'system' has started the restore!                               
Marking restore as running...                                                                  
Making sure /var/www/discourse/tmp/restores/default/2019-10-10-211121 exists...             
Downloading archive to tmp directory...                                               
Unzipping archive, this may take a while...
EXCEPTION: Compression::Strategy::ExtractFailed
/var/www/discourse/lib/compression/gzip.rb:49:in `block in extract_file'
/var/www/discourse/lib/compression/gzip.rb:45:in `open'
/var/www/discourse/lib/compression/gzip.rb:45:in `extract_file'

Natürlich, und ich denke, diese Seite wird sich ohnehin mit direkten Datenbank-Backups auf GCP zufriedengeben, aber irgendwann sagte Sam, dass er PG 11 auf seiner Entwicklungsumgebung betreibt und dass er an Informationen über Probleme mit PG 11 interessiert wäre.

@pfaffman Bitte erhöhen Sie die versteckte Site-Einstellung decompressed_file_max_size_mb. Der Standardwert liegt derzeit bei 1 GB.

Ich habe einen PR vorbereitet, um den Standardwert auf 100 GB zu erhöhen, der jedoch noch nicht gemerged wurde:

7 „Gefällt mir“

Danke, @Roman. Das hat das Problem also gelöst.

Aber jetzt habe ich eine Reihe von invalid command \N-Meldungen (und sie haben den Puffer gefüllt, bevor ich den davorliegenden Text erfassen konnte), aber vielleicht ist das hier das, was du wissen musst:

ERROR:  syntax error at or near "Shiny"        
LINE 1: Shiny contest submission 2019-01-07 20:00:05.570573 2019-01-...
^       
EXCEPTION: psql failed
/var/www/discourse/lib/backup_restore/restorer.rb:324:in `restore_dump'
/var/www/discourse/lib/backup_restore/restorer.rb:75:in `run'

Ja, ich glaube, das wird durch PG11 verursacht.

2 „Gefällt mir“

Wenn es die pg11-Instanz wäre, würde ich zustimmen! Aber hier handelt es sich um eine Standard-Installation mit zwei Containern.

Warte! Es liegt eine Versionsinkonsistenz vor.

root@community:/var/discourse# ./launcher enter data                                      root@staging-data:/# psql --version
psql (PostgreSQL) 10.7 (Ubuntu 10.7-1.pgdg16.04+1) 

Die Instanz, auf der ich wiederherstelle, ist Version 10.9! Das ist es wahrscheinlich. (Ich glaube, bei pg11 tritt ein ähnlicher Fehler auf, aber dort versuche ich, auf derselben Instanz wiederherzustellen).

Ich werde die Datencontainer morgen aktualisieren und mich bei dir melden. Vielen Dank für deine Hilfe.

3 „Gefällt mir“

Nun, ich habe beide auf 10.10 aktualisiert (unter Verwendung der Standard-Datenvorlagen), aber immer noch die Fehlermeldung „invalid command

1 „Gefällt mir“

Ich hatte gerade wieder einen Fehler. Beide sind 2.4.0.beta6 (einer ist 2c011252f1, der andere könnte etwas aktueller sein).

Ich stelle über S3 wieder her. Ich habe es sowohl mit als auch ohne Uploads versucht. Beides schien zu funktionieren und dann ist es so fehlgeschlagen:

...
COPY 11871
COPY 3689
COPY 0
COPY 36550
COPY 0 
COPY 14736
/usr/local/bin/discourse: Zeile 2:  3232 Abgebrochen                  RAILS_ENV=production sudo -H -E -u discourse bundle exec script/discourse "$@"

Ist dies die einzige Meldung, die du erhältst?

Was ist, wenn du versuchst, alle S3-Abhängigkeiten zu entfernen und die Sicherungsdatei zuerst lokal zu kopieren?

@pfaffman Es könnte hilfreich sein zu wissen, dass die zwei (oder drei) Wiederherstellungsprobleme, die du in diesem Thema gepostet hast, keine Vorfälle des Bugs sind, um den es ursprünglich in diesem Thema ging (das Problem PG::UndefinedColumn: ERROR). Du könntest erwägen, für diese neue Themen zu eröffnen, da es sich eindeutig um andere Probleme handelt.

4 „Gefällt mir“