Ottimizzazione delle immagini in pausa al ripristino su una nuova istanza del server

Sto cercando di migrare la mia istanza di Discourse su un nuovo server. Dato che ho spazio limitato sul server, vorrei prima\n\n Come posso mettere in pausa l’ottimizzazione delle immagini dopo l’upload iniziale del database e ripristinarla.\n\nCosì posso verificare se il ripristino è andato a buon fine, eliminare il file di backup ed eliminarlo.\n\nIl mio file di backup è di circa 200 GB con l’impostazione non selezionata “Includi miniature generate nei backup”. La disabilitazione di questa opzione renderà i backup più piccoli, ma richiederà una nuova cottura di tutti i post dopo un ripristino.\n\nQuindi, finirò lo spazio su disco se la mia istanza conserva il file di backup e inizia a ottimizzare le immagini.

Se hai bisogno di più spazio, hai bisogno di più spazio.

Ma forse vuoi sincronizzare le immagini con rsync e ripristinare solo il database. In questo modo non avrai due copie di tutti gli upload (e non dovrai ricreare le miniature).

Grazie per aver cercato di aiutare.

Ci ho provato, ma non ero del tutto sicuro del perché il mio ripristino non sia andato bene.

Il mio problema principale è che la mia vecchia istanza è bloccata sulla versione 12 di PostgreSQL, non ho trovato un modo per aggiornarla e ho provato a spostarmi su una nuova istanza pulita.

Sai se è possibile ripristinare solo il database su una nuova installazione?

Quando ho provato, l’istanza ha iniziato a restituire l’errore 500 e ho dovuto ricominciare da capo.

Quello che farei è seguire il Spostare un sito Discourse su un altro VPS con rsync tranne che non copiare i file postgres.

Quindi farei un backup solo del database e lo ripristinerei. Trasferiresti anche il backup tramite rsync e lo ripristineresti dalla riga di comando.

Si tratta di una versione molto vecchia, immagino? Il ripristino sembra essere completato con successo?

1 Mi Piace

Grazie per l’aiuto.

Sì, ma per un ripristino semplice utilizzando l’interfaccia web e la procedura prevista, è necessario uno spazio libero 4 volte superiore alla dimensione del file di backup.

Ecco come:

  1. Carica il file di backup (o usa rsync in /var/discourse/shared/standalone/backups/default)
  2. Una volta avviato il ripristino, il file di backup.gz viene copiato in /var/discourse/shared/standalone/tmp/restores/
  3. Durante il ripristino, il file di backup nella cartella /var/discourse/shared/standalone/tmp/restores/ viene decompresso
  4. Dalla cartella temporanea, i caricamenti vengono copiati nella posizione nativa e il dump SQL viene inserito nel database PostgreSQL.

Come sono riuscito a ripristinare con successo.

Durante il processo di ripristino, una volta che discourse ha copiato il file dalla cartella di ripristino a quella temporanea, ho eliminato il file di backup originale caricato tramite SSH.

Ancora una volta, quando discourse ha finito con gli inserimenti SQL e il comando rsync ha copiato i file decompressi dalla cartella temporanea a /var/discourse/shared/standalone/uploads/, ho eliminato manualmente il file bakupxxx.tar.gz nella cartella temporanea tramite SSH senza interrompere il processo di ripristino.

Una volta che la mia istanza è stata online e rsync è terminato, ho eseguito:

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

Se il tuo processo di ripristino di backup di grandi dimensioni sembra bloccato e l’istanza tramite web inizia a restituire un codice di errore 500 (mi è successo due volte), puoi controllare il processo di ripristino entrando nell’app:

cd /var/discourse
./launcher enter app

ps aux | grep restore


Inoltre, poiché il ripristino del mio database era troppo lungo:

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’;\"”

Mi ha aiutato a monitorare lo stato di avanzamento del ripristino del database, per vedere che il ripristino era ancora attivo.

Questa è una bella soluzione! Se qualcun altro dovesse imbattersi in questo problema, penso che eseguire un ripristino solo del database avrebbe funzionato ed è stato un po’ più facile, ma sono contento che tu l’abbia risolto!

1 Mi Piace