Wie kann ich ein Backup von Discourse herunterladen und die lokale Datenbank wiederherstellen

Navigieren Sie zur Sicherungsoberfläche der Website, um alle aktuellen Sicherungen anzuzeigen.


Klicken Sie auf die Schaltfläche „Herunterladen“.

Beachten Sie, dass das System nach dem Herunterladen einen Link an Ihre E-Mail-Adresse sendet.

Sie können den Link in Ihrer E-Mail-Adresse verwenden, um die Daten herunterzuladen.

Download-Link

Klicken Sie auf den Download-Link in der E-Mail, um den Download zu starten.


Die heruntergeladene Datei ist eine tar.gz-Datei und muss entpackt werden, bevor sie verwendet werden kann.

Zum Beispiel ist unsere aktuelle Download-Datei: isharkfly-2023-09-14-092024-v20230910021213.tar

Nach einer Reihe komplexer Entpackungsschritte finden Sie die Datei dump.sql.

Diese Datei ist Ihre vollständige Datenbank-Sicherung.

Datenwiederherstellung

Der Installationspfad von pgAdmin psql unter Windows ist: C:\Users\yhu\AppData\Local\Programs\pgAdmin 4\v7\runtime

Unser Befehl lautet: psql -h nas1120 -p 5433 -U postgres -W -d discourse -f C:\\Users\\yhu\\Downloads\\isharkfly-2023-09-14-092024-v20230910021213\\isharkfly-2023-09-14-092024-v20230910021213\\dump.sql\\dump.sql

Lokale Datenbanken können bei der Wiederherstellung nicht überschrieben werden.

Wenn Ihre lokale Datenbank bereits existiert, müssen Sie die vorhandene lokale Datenbank leeren, bevor Sie mit der Wiederherstellung fortfahren können.

Der Sicherungswiederherstellungsprozess erfordert die Wiederherstellung aller Daten und der Tabellenstruktur.

Das Wiederherstellungsprogramm kann keine Daten auf einer vorhandenen Datenstruktur wiederherstellen und keine inkrementelle Wiederherstellung durchführen.

Tabellendaten prüfen

Überprüfen Sie die Tabellendaten, um sicherzustellen, dass einige Tabellendaten erfolgreich wiederhergestellt wurden.


Zeitstempel sind in der Regel eine gute Prüfmethode.

1 „Gefällt mir“

Ergänzung.
Wenn der Mail-Dienst ausfällt, können Administratoren mit SSH-Berechtigungen alle Sicherungsdateien unter /var/discouse/{standalone | web_only}/backup/default einsehen.

Eine Anmerkung:
Wenn der Mail-Dienst ausfällt, können Administratoren mit SSH-Berechtigungen alle Sicherungsdateien unter /var/discouse/{standalone | web_only}/backup/default einsehen.

3 „Gefällt mir“

Wie kann ich Minio für Backups verwenden? Ich verstehe die Fehlermeldungen im Log nicht, hier ist das Log:

....
[2023-10-03 13:33:24] Removing tmp '/var/www/discourse/tmp/backups/default/2023-10-03-133319' directory...
[2023-10-03 13:33:24] Gzipping archive, this may take a while...
[2023-10-03 13:33:25] Uploading archive...
[2023-10-03 13:33:27] EXCEPTION: Aws::S3::Errors::Forbidden
[2023-10-03 13:33:27] /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/aws-sdk-s3-1.114.0/lib/aws-sdk-s3/object.rb:445:in `rescue in exists?'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/aws-sdk-s3-1.114.0/lib/aws-sdk-s3/object.rb:440:in `exists?'
/var/www/discourse/lib/backup_restore/s3_backup_store.rb:46:in `upload_file'
/var/www/discourse/lib/backup_restore/backuper.rb:344:in `upload_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:41:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:9:in `backup'
/var/www/discourse/script/spawn_backup_restore.rb:31: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>'
[2023-10-03 13:33:27] Deleting old backups...
[2023-10-03 13:33:28] Cleaning stuff up...
[2023-10-03 13:33:28] Removing archive from local storage...
[2023-10-03 13:33:28] Removing '.tar' leftovers...
[2023-10-03 13:33:28] Marking backup as finished...
[2023-10-03 13:33:28] Notifying 'XXX' of the end of the backup...

Das obige Log besagt wahrscheinlich, dass S3 keine Berechtigung hat.

Stellen Sie sicher, dass Ihre S3-Berechtigungseinstellungen korrekt sind.

Hier sind meine Einstellungen, bitte schauen Sie, wo das Problem liegt:

  1. Discourse-Einstellungen
  2. Minio Bucket-Berechtigungseinstellungen
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "*"
                ]
            },
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucketMultipartUploads"
            ],
            "Resource": [
                "arn:aws:s3:::discourse-backup"
            ]
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "*"
                ]
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::discourse-backup/*"
            ]
        }
    ]
}
  1. Minio Upload Bucket-Berechtigung ist öffentlich

Schauen Sie sich diesen Artikel als Referenz an: discourse-docs/minio.md at master · rishabhnambiar/discourse-docs · GitHub

Dieser Artikel stammt noch aus der Zeit, als der Pfadstil unterstützt wurde. Jetzt wird nur noch der DNS-Stil unterstützt, und ich kann keine Konfigurationsanleitungen für Minio im gesamten Netzwerk finden.

Mal sehen, ob es vielleicht an den Minio-Einstellungen liegt.

Versuchen Sie, mit einem anderen Tool, das direkten Zugriff auf den Bucket hat, hochzuladen.

Wenn der Upload hier direkt funktioniert, liegt es höchstwahrscheinlich an der Discourse-Konfiguration. Wenn der Upload hier nicht direkt funktioniert, liegt es höchstwahrscheinlich an den Berechtigungen.