Estoy intentando migrar mi instancia de Discourse a un nuevo servidor. Como tengo espacio limitado en el servidor, primero quiero\n\n ¿Cómo puedo pausar la optimización de imágenes después de la carga inicial de la base de datos y restaurarla?\n\nAsí puedo comprobar si la restauración ha ido bien y eliminar el archivo de copia de seguridad y eliminar.\n\nMi archivo de copia de seguridad es de aproximadamente 200 GB con la configuración sin marcar Incluir miniaturas generadas en las copias de seguridad. Deshabilitar esto hará que las copias de seguridad sean más pequeñas, pero requiere un rebake de todas las publicaciones después de una restauración.\n\nAsí que me voy a quedar sin espacio en disco si mi instancia guarda el archivo de copia de seguridad y comienza a optimizar las imágenes.
Si necesitas más espacio, necesitas más espacio.
Pero quizás quieras hacer rsync de las imágenes y restaurar solo la base de datos. De esa manera, no tendrás dos copias de todas las subidas (y no tendrás que volver a crear las miniaturas).
Gracias por intentar ayudar.
Lo intenté, pero no estaba muy seguro de por qué mi restauración no salió bien.
Mi principal problema es que mi instancia antigua se quedó atascada en la versión 12 de PostgreSQL, no encontré la manera de actualizarla e intenté moverla a una instancia nueva y limpia.
¿Sabes si es posible restaurar solo la base de datos en una instalación nueva?
Cuando lo intenté, la instancia simplemente empezó a devolver el código de error 500 y tuve que empezar de nuevo.
Lo que haría sería seguir la Guía para mover un sitio de Discourse a otro VPS con rsync excepto que no copiaría los archivos de postgres.
Luego, haría una copia de seguridad solo de la base de datos y la restauraría. También copiaría la copia de seguridad con rsync y la restauraría desde la línea de comandos.
¿Es esta una versión muy antigua, supongo? ¿La restauración pareció completarse con éxito?
Gracias por tu ayuda.
Sí, pero para una restauración sencilla utilizando la interfaz gráfica web y el procedimiento esperado, necesitas un tamaño 4 veces mayor que el de tu archivo de copia de seguridad.
Aquí te explico cómo:
- Sube el archivo de copia de seguridad (o usa rsync en
/var/discourse/shared/standalone/backups/default) - Una vez que se inicia la restauración, el archivo de copia de seguridad se copia a
/var/discourse/shared/standalone/tmp/restores/ - Durante la restauración, el archivo de copia de seguridad en la carpeta
/var/discourse/shared/standalone/tmp/restores/se descomprime - Desde la carpeta temporal, las subidas se sincronizan a su lugar nativo y el volcado SQL se inserta en la base de datos pg.
Cómo logré una restauración exitosa.
Durante el proceso de restauración, una vez que discourse copió el archivo de la carpeta de restauración a temporal, eliminé el archivo de copia de seguridad original subido por SSH.
Una vez más, cuando discourse terminó con las inserciones SQL y la sincronización de archivos desempaquetados desde la carpeta temporal a /var/discourse/shared/standalone/uploads/, eliminé manualmente el archivo bakupxxx.tar.gz en la carpeta temporal por SSH sin interrumpir el proceso de restauración.
Una vez que mi instancia estuvo en línea y la sincronización terminó, hice
rm -rf /var/discourse/shared/standalone/tmp/restores/default/*
Si tu proceso de restauración de copias de seguridad grandes parece muerto y la instancia a través de la web comienza a devolver un código de error 500 (me sucedió dos veces), puedes verificar el proceso de restauración entrando en la aplicación
cd /var/discourse
./launcher enter app
ps aux | grep restore
También, dado que la restauración de mi base de datos fue demasiado larga
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’;\"”
Me ayudó a monitorear el progreso de la restauración de la base de datos, para ver que la restauración todavía estaba activa.
¡Esa es una solución! Si alguien más encuentra esto, creo que hacer una restauración solo de la base de datos habría funcionado y habría sido un poco más fácil, ¡pero me alegro de que lo hayas resuelto!