Discourse: come scaricare il backup e ripristinare il database locale

Accedi alla pagina di backup del sito Web per visualizzare tutte le attuali situazioni di backup.


Fai clic sul pulsante di download.

È importante notare che dopo aver scaricato, il sistema invierà un link al tuo indirizzo email.

Puoi utilizzare il link ricevuto nell’indirizzo email per scaricare i dati.

Link di download

Fai clic sull’indirizzo del link di download ricevuto nell’email per scaricare.


Il file scaricato è un file tar.gz, che dovrai decomprimere per poterlo utilizzare.

Ad esempio, il nostro file scaricato attuale è: isharkfly-2023-09-14-092024-v20230910021213.tar

Dopo una serie di complessi percorsi di decompressione, puoi trovare il file dump.sql.

Questo file è il backup di tutti i tuoi database.

Ripristino dei dati

Il percorso di installazione di psql di PQadmin su Windows è: C:\Users\yhu\AppData\Local\Programs\pgAdmin 4\v7\runtime

Il nostro comando di esecuzione è: 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

Il database locale non può essere sovrascritto durante il ripristino.

Se il tuo database locale esiste già, dovrai svuotare il database locale esistente prima di poter eseguire il ripristino.

Il processo di ripristino del backup richiede il ripristino di tutti i dati e della struttura delle tabelle.

Il programma di ripristino non è in grado di eseguire il ripristino su una struttura dati esistente ed eseguire un ripristino incrementale.

Verifica dei dati delle tabelle

Verifica i dati delle tabelle per confermare che alcuni dati delle tabelle siano stati ripristinati.


I timestamp sono generalmente un buon metodo di verifica.

1 Mi Piace

Integrazione.
Se il servizio di posta non funziona, gli amministratori con permessi ssh possono vedere tutti i file di backup in /var/discouse/{standalone | web_only}/backup/default.

Nota:
Se il servizio di posta non funziona, gli amministratori con permessi ssh possono vedere tutti i file di backup in /var/discouse/{standalone | web_only}/backup/default.

3 Mi Piace

Come posso usare Minio per il backup? Non capisco i messaggi di errore nel log, ecco il log:

....
[2023-10-03 13:33:24] Rimozione della directory temporanea '/var/www/discourse/tmp/backups/default/2023-10-03-133319'...
[2023-10-03 13:33:24] Compressione dell'archivio in formato gzip, potrebbe volerci un po'...
[2023-10-03 13:33:25] Caricamento dell'archivio...
[2023-10-03 13:33:27] ECCEZIONE: 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] Eliminazione dei vecchi backup...
[2023-10-03 13:33:28] Pulizia in corso...
[2023-10-03 13:33:28] Rimozione dell'archivio dallo storage locale...
[2023-10-03 13:33:28] Rimozione dei residui '.tar'...
[2023-10-03 13:33:28] Marcatura del backup come completato...
[2023-10-03 13:33:28] Notifica a 'XXX' della fine del backup...

Il log sopra dovrebbe indicare che S3 non ha i permessi.

Verifica che le impostazioni dei permessi di S3 siano corrette.

Ecco le mie impostazioni, per favore, esperti, ditemi dove ho sbagliato:

  1. Impostazioni di Discourse
  2. Impostazioni dei permessi del bucket di backup Minio
{
    "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. I permessi del bucket di caricamento Minio sono pubblici

Dai un’occhiata a questo articolo: discourse-docs/minio.md at master · rishabhnambiar/discourse-docs · GitHub

Questo articolo è ancora di quando esisteva lo stile path, ora supporta solo lo stile dns, non riesco a trovare tutorial di configurazione che utilizzino minio su tutta la rete.

Vediamo allora, potrebbe essere nelle impostazioni di Minio.

Prova a usare altri strumenti, ad esempio strumenti che possono accedere direttamente al bucket, per vedere se riesci a caricare direttamente.

Se riesci a caricare direttamente qui, allora è molto probabile che sia un problema di configurazione di Discourse. Se non riesci a caricare direttamente qui, allora è molto probabile che sia un problema di permessi.