No se puede subir copia de seguridad

¡Hola!

Acabo de instalar Discourse en un nuevo servidor e intenté subir una copia de seguridad de aproximadamente 400 MB.
Se detiene al 40% con el siguiente error:
Slow down, too many requests from this IP address. Please retry again in 2 seconds. Error code: ip_10_secs_limit.

¿Qué es esto y cómo puedo solucionarlo?

1 me gusta

Como solución alternativa, podría cargar la copia de seguridad a través de SCP. Consulte Restore a backup from the command line para obtener más información.

@martin ¿Podría ser causado por el cambio a Uppy?

2 Me gusta

Seguí tu enlace para restaurar la copia de seguridad desde la CLI, pero no se restauró nada, seguía igual que una instalación nueva.

¿Está en la copia de seguridad el archivo “old” app.yml y se sobrescribirá cuando restaure la copia de seguridad? Si no es así, toda la copia de seguridad es inútil.

Intenté restaurar la copia de seguridad desde Discourse y ahora tengo un sitio en blanco.

Esto es desde la línea de comandos cuando intento restaurar la copia de seguridad. Por supuesto, seguí los comandos del enlace, pero parece que algo ha cambiado.

Starting restore: backup-2021-12-06-185610-v20211201221028.tar.gz
[STARTED]
'system' has started the restore!
Marking restore as running...
Making sure /var/www/discourse/tmp/restores/default/2021-12-18-163225 exists...
Copying archive to tmp directory...
EXCEPTION: lib/discourse.rb:127:in `exec': Failed to copy archive to tmp directory.
cp: cannot stat '/var/www/discourse/public/backups/default/backup-2021-12-06-185610-v20211201221028.tar.gz': No such file or directory
lib/discourse.rb:154:in `execute_command'
lib/discourse.rb:127:in `exec'
lib/discourse.rb:34:in `execute_command'
/var/www/discourse/lib/backup_restore/local_backup_store.rb:42:in `download_file'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:62:in `copy_archive_to_tmp_directory'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:22:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:42:in `run'
script/discourse:149:in `restore'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/base.rb:485:in `start'
script/discourse:290:in `<top (required)>'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/cli.rb:477:in `exec'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/cli.rb:31:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/cli.rb:25:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/exe/bundle:49:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/friendly_errors.rb:128:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/exe/bundle:37:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Trying to rollback...
There was no need to rollback
Cleaning stuff up...
Removing tmp '/var/www/discourse/tmp/restores/default/2021-12-18-163225' directory...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[FAILED]
Restore done.
1 me gusta

Así que pusiste el archivo en el lugar equivocado o el nombre del archivo es incorrecto. Si es lo último, entonces

   discourse restore

Sin nombre de archivo sugerirá los archivos disponibles.

Si haces un

     discourse backup

Puedes ver dónde puso el archivo. No intentaré escribir la ruta correcta en mi teléfono.

1 me gusta

No, lo hice como está escrito aquí:

Así que si esta es la ruta incorrecta, el tutorial está mal. Por eso pregunté dónde poner el archivo.

Es muy fácil escribir las cosas mal. Por eso sugerí formas de probar que las cosas estaban en el lugar correcto. ¿Probaste

discourse restore

¿Sin nombre de archivo?

Sé lo que quieres decir. pero lo hice exactamente según las instrucciones (sin cometer un error, copié las rutas), así que pregunto si las instrucciones están mal o si algo ha cambiado en las rutas en los últimos 2 años.

Lo intentaré de nuevo, pero tal vez tenga que reinstalar Discourse de nuevo porque ahora solo tengo un sitio en blanco.

¿No crees que no puedes copiar y pegar esta parte sin cambiarla?

1 me gusta

Creo que la ruta de destino es la correcta, de lo contrario deberían decir dónde moverlo exactamente.

1 me gusta

Ah, ya veo. Leí tu publicación como “No podría haber escrito mal nada, ya que lo copié y pegué todo de la guía”. :slightly_smiling_face:

Podría restaurar la copia de seguridad con discourse restore, pero faltan algunas categorías, falta toda la cabecera, no puedo iniciar sesión, el archivo app.yml sigue siendo el mismo que en una instalación nueva y muchas cosas más.
La copia de seguridad era del 21.06.12 y elegí hacer una copia de seguridad de todo, pero faltan la mitad de las cosas.

Así que, para mí, todo el proceso de copia de seguridad y restauración es un desastre total.

Esto debe ser increíblemente frustrante. Le ofrezco mis condolencias.

El archivo app.yml no se incluye en la copia de seguridad de Discourse. Debería copiar uno de su instancia anterior o editar uno nuevo.

2 Me gusta

Esto debería decirse en el momento en que se crea la copia de seguridad (como información al final). No tengo acceso al archivo antiguo y es posible crear uno nuevo, pero no recuerdo qué plugins tenía.

Pero entonces todavía queda la pregunta de por qué faltan algunas categorías y temas, y por qué falta la cabecera y no puedo iniciar sesión.

De eso no estoy seguro. :slightly_smiling_face: ¿Ejecutaste ./launcher discourse-setup en tu nueva instancia?

Sí, por supuesto. ¿O no debería hacerlo para restaurar? ¿O te refieres después de la restauración?

Pensé que eso podría llenar algunas de las piezas que faltan, pero no estoy seguro.

Tal vez valga la pena tomar el archivo de copia de seguridad y restaurarlo en un Discourse nuevo con un app.yml actualizado, y ver si eso mejora algo.

1 me gusta

Fue una instalación limpia en un servidor nuevo, y pensé que app.yml estaba en la copia de seguridad, pero me equivoqué. No tengo acceso a la instancia de Discourse “antigua”, por lo que parece que no hay forma de restaurar el archivo app.yml.

¿Puedes editar el archivo app.yml existente para añadir lo que creas que podría faltar? No estoy seguro de qué podría impedir que se copien las categorías o los inicios de sesión.

¿Restauraste una copia de seguridad completa? La del OP se detuvo al 40%. Si restauraste esa versión, ¿podría explicar por qué falta la mitad de tus cosas?

Sin embargo, solo estoy adivinando en este momento. :slightly_smiling_face: Lamento no poder ser de más ayuda.

Lamento que hayas tenido tantos problemas. No puedo explicar cómo pudo haber sucedido.

No puedo imaginar una forma en que una copia de seguridad restaure solo algunas categorías. Si solo se restauran algunas categorías, entonces eso es lo que hay en la copia de seguridad que tomaste. Quizás tengas una copia de seguridad antigua.

La app.yml no tiene nada que ver con tus datos, solo con el nombre de host y otras cosas necesarias para configurar Discourse. Puedes restaurar cualquier base de datos en cualquier sitio.

1 me gusta

Volveré a instalar Discourse (con una imagen de servidor nueva) e intentaré restaurar la copia de seguridad de nuevo.

El bloqueo del 40% ocurrió al subirla directamente a Discourse, después copié la copia de seguridad al servidor vía SCP.

Sí, eso es cierto, pero pensé que algo importante también se guardaría en la copia de seguridad. Ahora no sé qué plugins tenía instalados en la instancia anterior y cómo eran sus configuraciones.
La copia de seguridad es de este mismo año, del 6 de diciembre, así que hace solo unos días.