Erstellen, Herunterladen und Wiederherstellen eines Backups Ihrer Discourse-Datenbank

:bookmark: Dieser Leitfaden enthält eine Schritt-für-Schritt-Anleitung zum Erstellen, Herunterladen und Wiederherstellen eines Backups Ihrer Discourse-Datenbank.

:person_raising_hand: Erforderliches Benutzerniveau: Administrator

Discourse ermöglicht es Seitenadministratoren, eine Kopie der Datenbank der Website zu erstellen und herunterzuladen. Das Backup kann dann auf jedes Discourse-Forum hochgeladen und wiederhergestellt werden.

Discourse-Backups enthalten die vollständige Datenbank der Website, die alles auf der Website enthält: Themen, Beiträge, Benutzer, Gruppen, Einstellungen, Themes usw. Abhängig davon, wie die Backup-Datei erstellt wird, können Uploads enthalten sein oder auch nicht. Backups, die Uploads enthalten, werden als .tar.gz-Dateien gespeichert, während Backups ohne Uploads als .sql.gz-Dateien gespeichert werden. Details finden Sie im nächsten Abschnitt.

Obwohl die von Plugins erstellten Daten in der Datenbank vorhanden sind, werden die Plugins selbst in Ihrer app.yml-Datei installiert. Um Ihre Website auf einem neuen Server wiederherzustellen, müssen Sie sicherstellen, dass Ihre Installation die erforderlichen Plugins enthält.

Nur-Lese-Modus

Sie können den Nur-Lese-Modus auf der Seite „Backups“ aktivieren, um Änderungen an der Website für administratorenbezogene Aufgaben zu verhindern. Erfahren Sie hier mehr über den Nur-Lese-Modus.

Ein Backup erstellen

Um ein Backup Ihrer Discourse-Website zu erstellen, gehen Sie wie folgt vor:

  1. Gehen Sie zum Bereich Admin / Backups Ihrer Website.
  2. Klicken Sie auf die Schaltfläche Backup.

  1. Ein modales Fenster wird geöffnet, in dem sich ein Kontrollkästchen befindet, um die Uploads der Website in das Backup einzuschließen. Aktivieren oder deaktivieren Sie diese Option je nach Ihren Präferenzen.

:warning: Wenn Ihre Website von uns gehostet wird und Sie ein Backup erstellen möchten, das Uploads enthält, wenden Sie sich bitte vor der Erstellung des Backups an das Discourse-Team.

  1. Klicken Sie auf die Bestätigungsschaltfläche, um das Backup zu starten.

Ein Backup herunterladen

Sobald das Backup abgeschlossen ist, sendet Discourse Ihnen eine Benachrichtigung.

  • Klicken Sie auf den Link in der Benachrichtigung, um zu Ihrer Backups-Seite zurückzukehren. Klicken Sie dann auf die Schaltfläche „Herunterladen“.

  • Eine E-Mail mit einem Link zum Herunterladen des Backups wird an Sie gesendet. Klicken Sie auf den Link, um das Backup auf Ihrem Computer zu speichern.

Ein Backup hochladen

  • Um ein Backup hochzuladen, gehen Sie zum Bereich Admin / Backups Ihrer Website, navigieren Sie zur Registerkarte Backup Files und klicken Sie auf die Schaltfläche Upload.

  • Dadurch wird der Dateimanager Ihres Browsers geöffnet. Wählen Sie das Backup aus Ihrem Dateisystem aus und klicken Sie auf die Schaltfläche „Öffnen“ des Dateimanagers. Die neue Backup-Datei wird in der Dateiliste angezeigt.

Ein Backup wiederherstellen

Bevor Sie Ihre Backup-Datei wiederherstellen können, müssen Sie die Website-Einstellung allow restore aktivieren. Suchen Sie dann auf der Seite Backups das wiederherzustellende Backup, klicken Sie auf das Menü für weitere Optionen (⋮) und wählen Sie Restore (Wiederherstellen).

:warning: Das Wiederherstellen einer Backup-Datei überschreibt alle Daten auf der Website. Wenn das Backup wiederhergestellt ist, werden Sie von der Website abgemeldet und müssen sich mit Ihren Anmeldedaten der wiederhergestellten Website erneut anmelden.

:warning: Stellen Sie sicher, dass die Website, auf die Sie wiederherstellen, dieselbe Version von Discourse ausführt wie die alte Website. Es ist am besten, beide Websites vor dem Ausführen des Backup-/Wiederherstellungsprozesses auf die neueste Version zu aktualisieren.

Der Wiederherstellungsprozess setzt automatisch die Einstellung disable emails auf „non-staff“ (nicht-Mitarbeiter), sodass E-Mails erst an die Benutzer Ihrer Website gesendet werden, wenn Sie dazu bereit sind.

:discourse: Wenn Ihre Website von Discourse gehostet wird, ist die Option „Restore“ (Wiederherstellen) deaktiviert. Nachdem Sie die Backup-Datei hochgeladen haben, wenden Sie sich an das Discourse-Team und teilen Sie uns den Namen der Backup-Datei mit, die Sie wiederherstellen möchten. Wir werden die Wiederherstellung für Sie durchführen.

Backup und Wiederherstellung über die Befehlszeile

Administratoren, die mit der Befehlszeile vertraut sind, können Backups programmatisch erstellen und verwalten:

  • Backups werden unter /var/discourse/shared/standalone/backups gespeichert.
  • Starten Sie ein Backup mit:
./launcher run app discourse backup

oder

docker exec app bash -c "discourse backup"

Weitere Informationen zu Backups über die Befehlszeile finden Sie unter: Backup discourse from the command line.

32 „Gefällt mir“

Gibt es eine Möglichkeit, diese Sicherungsdatei programmatisch zu erstellen und herunterzuladen? Ich meine, ich habe einige Cron-Skripte auf dem Server, die Sicherungen für unzählige andere Dienste durchführen. Kann ich direkt auf dem Server ein paar CLI-Befehle ausführen, um die Sicherung dort zu erhalten? Vielleicht so etwas wie ./launcher app backup new-backup.backup?

Die Backups befinden sich unter /var/discourse/shared/standalone/backups

Sie können ein Backup starten mit

./launcher run app discourse backup

Oder

docker exec app bash -c "discourse backup"

Ich glaube.

2 „Gefällt mir“

Ist dies auch in einer Docker-Entwicklungsumgebung möglich, die wie unter Install Discourse for development using Docker beschrieben eingerichtet ist?

Wenn ich es wie im Abschnitt Backup erstellen oben beschrieben versuche, erhalte ich den Fehler pg_dump: error: connection to database "discourse_development" failed: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "postgres".

Vollständiges Protokoll des fehlgeschlagenen Backups
[2024-09-04 15:03:39] [STARTED]
[2024-09-04 15:03:39] 'raphael.dasgupta' hat das Backup gestartet!
[2024-09-04 15:03:39] Markiere Backup als laufend...
[2024-09-04 15:03:39] Stelle sicher, dass '/src/tmp/backups/default/2024-09-04-150339' existiert...
[2024-09-04 15:03:39] Stelle sicher, dass '/src/public/backups/default' existiert...
[2024-09-04 15:03:39] Metadaten aktualisieren...
[2024-09-04 15:03:39] Öffentliches Schema der Datenbank sichern...
[2024-09-04 15:03:40] pg_dump: error: connection to database "discourse_development" failed: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "postgres"
[2024-09-04 15:03:40] EXCEPTION: pg_dump fehlgeschlagen
[2024-09-04 15:03:40] /src/lib/backup_restore/backuper.rb:173:in `dump_public_schema'
/src/lib/backup_restore/backuper.rb:36:in `run'
/src/script/spawn_backup_restore.rb:9:in `backup'
/src/script/spawn_backup_restore.rb:31:in `block in <main>'
/src/script/spawn_backup_restore.rb:4:in `fork'
/src/script/spawn_backup_restore.rb:4:in `<main>'
[2024-09-04 15:03:40] Aufräumen...
[2024-09-04 15:03:40] '.tar' Überbleibsel entfernen...
[2024-09-04 15:03:40] Markiere Backup als beendet...
[2024-09-04 15:03:40] Benachrichtige 'raphael.dasgupta' über das Ende des Backups...
1 „Gefällt mir“

Ich habe Schwierigkeiten, ein Backup herunterzuladen. Als ich auf die Download-Schaltfläche klickte, erhielt ich eine Aufforderung, dass ein Download-Link an meine E-Mail-Adresse gesendet wurde. Allerdings sind jetzt über zwei Tage vergangen und ich habe die E-Mail immer noch nicht erhalten.

Bitte helfen Sie mir freundlicherweise.

Haben Sie es mit ./discourse-doctor versucht

Vielen Dank für Ihre Antwort. Das Hauptproblem ist, dass ich eine andere E-Mail vom Backend als Administrator konfiguriert habe. Die Verbindung zu Port 587 schlägt immer wieder fehl und E-Mails werden nicht gesendet. Gibt es eine Möglichkeit, dies zu umgehen, oder gibt es einen anderen Port, den ich verwenden kann?

1 „Gefällt mir“

Ist dies die alternative Antwort per E-Mail-Adresse, die Sie bestätigt haben?

Port 587 ist das, was ich verwende, um eine Verbindung zu smtp.eu.mailgun.org herzustellen

Dies ist, was ich in meinen Servereinstellungen habe.

Ich verstehe, Sie möchten Office 365 auf Ihrer Root-Domain und Discourse-Transaktions-E-Mail / Mail-Empfänger über MX auf einer Subdomain?

Ja, weil meine E-Mail auf 365 eingestellt ist

Ich glaube, die Ursache des Problems ist, dass Sie Office 365 für Transaktions-E-Mails verwenden. Sie sollten einen Transaktions-E-Mail-Dienst wie Mailgun oder Brevo verwenden, die beide ohne größere Probleme mit Discourse verwendet werden.

1 „Gefällt mir“

Ich kann Ihnen bei den beschriebenen Einrichtungen helfen. Derzeit können Sie keine Discourse-E-Mails über Ihre Office 365-Abonnements senden oder empfangen.

Welchen Umfang hat das Forum, das wir hier betrachten? Ein kostenloser E-Mail-Plan könnte ausreichen.

Ich habe die SMTP-Einstellungen mit Brevo konfiguriert und Port 587 verwendet, erhalte aber immer noch dieselbe Fehlermeldung. Bitte helfen Sie mir, ich bin nicht sicher, wo ich falsch liege.

Hmm… was ist mit der Änderung des Ports auf 2525?

1 „Gefällt mir“

Konnten Sie das zum Laufen bringen?

Beim Hochladen der Sicherungsdatei kann die heruntergeladene Sicherungsdatei nicht ausgewählt werden, da sie ausgegraut und nicht wählbar ist. Die Datei hat die Endung .tar.gz.

Ist die Datei, die Sie wiederherstellen möchten, eine neuere Version von Discourse?

Haben Sie den Namen der Datei geändert? Es funktioniert nicht, wenn es nicht der Name ist, der bei der Erstellung des Backups vergeben wurde.

1 „Gefällt mir“