Crear, descargar y restaurar una copia de seguridad de su base de datos Discourse

:bookmark: Esta guía proporciona instrucciones paso a paso para crear, descargar y restaurar una copia de seguridad de tu base de datos de Discourse.

:person_raising_hand: Nivel de usuario requerido: Administrador

Discourse permite a los administradores del sitio crear y descargar una copia de la base de datos del sitio. La copia de seguridad se puede cargar y restaurar en cualquier foro de Discourse.

Las copias de seguridad de Discourse incluyen la base de datos completa del sitio, que contiene todo lo que hay en el sitio: temas, publicaciones, usuarios, grupos, configuraciones, temas, etc. Dependiendo de cómo se cree el archivo de copia de seguridad, puede incluir o no las subidas (uploads). Las copias de seguridad que incluyen subidas se guardan como archivos .tar.gz, mientras que las copias de seguridad sin subidas se guardan como archivos .sql.gz. Consulta la siguiente sección para obtener más detalles.

Aunque los datos creados por los plugins existen en la base de datos, los plugins en sí se instalan en tu archivo app.yml. Para restaurar tu sitio en un nuevo servidor, deberás asegurarte de que tu instalación incluya los plugins que requieres.

Modo de solo lectura

Puedes habilitar el modo de solo lectura en la página de Copias de seguridad para evitar cambios en el sitio para tareas relacionadas con el administrador. Obtén más información sobre el modo de solo lectura aquí.

Crear una copia de seguridad

Para crear una copia de seguridad de tu sitio de Discourse, sigue estos pasos:

  1. Ve a la sección Admin / Backups (Administrador / Copias de seguridad) de tu sitio.
  2. Haz clic en el botón Backup (Copia de seguridad).

  1. Se abrirá una ventana modal con una casilla de verificación para incluir las subidas del sitio en la copia de seguridad. Marca o desmarca esta opción según tu preferencia.

:warning: Si tu sitio está alojado por nosotros y deseas crear una copia de seguridad que incluya las subidas, comunícate con el equipo de Discourse antes de crear la copia de seguridad.

  1. Haz clic en el botón de confirmación para iniciar la copia de seguridad.

Descargar una copia de seguridad

Cuando la copia de seguridad se complete, Discourse te enviará una notificación.

  • Haz clic en el enlace de la notificación para volver a tu página de Copias de seguridad. Luego haz clic en el botón Download (Descargar).

  • Se te enviará un correo electrónico con un enlace para descargar la copia de seguridad. Haz clic en el enlace para guardar la copia de seguridad en tu computadora.

Subir una copia de seguridad

  • Para subir una copia de seguridad, ve a la sección Admin / Backups (Administrador / Copias de seguridad) de tu sitio, navega a la pestaña Backup Files (Archivos de copia de seguridad) y haz clic en el botón Upload (Subir).

  • Esto abrirá el administrador de archivos de tu navegador. Selecciona la copia de seguridad de tu sistema de archivos y haz clic en el botón Open (Abrir) del administrador de archivos. El nuevo archivo de copia de seguridad se mostrará en la lista de archivos.

Restaurar una copia de seguridad

Antes de poder restaurar tu archivo de copia de seguridad, debes habilitar la configuración del sitio allow restore (permitir restauración). Luego, en la página Backups (Copias de seguridad), encuentra la copia de seguridad que deseas restaurar, haz clic en el menú de más opciones (⋮) y selecciona Restore (Restaurar).

:warning: Restaurar un archivo de copia de seguridad sobrescribirá todos los datos del sitio. Cuando se restaure la copia de seguridad, se cerrará tu sesión del sitio y deberás iniciar sesión nuevamente con tus credenciales del sitio restaurado.

:warning: Asegúrate de que el sitio donde estás restaurando esté ejecutando la misma versión de Discourse que el sitio antiguo. Es mejor actualizar ambos sitios a la última versión antes de ejecutar el proceso de copia de seguridad/restauración.

El proceso de restauración establece automáticamente la configuración disable emails (deshabilitar correos electrónicos) en “non-staff” (no personal), por lo que no se enviarán correos electrónicos a los usuarios de tu sitio hasta que estés listo.

:discourse: Si tu sitio está alojado por Discourse, la opción Restore (Restaurar) estará deshabilitada. Después de subir el archivo de copia de seguridad, comunícate con el equipo de Discourse e infórmanos el nombre del archivo de copia de seguridad que deseas restaurar. Lo restauraremos por ti.

Copia de seguridad y restauración desde la línea de comandos

Para los administradores familiarizados con la línea de comandos, puedes crear y gestionar copias de seguridad mediante programación:

  • Las copias de seguridad se almacenan en /var/discourse/shared/standalone/backups.
  • Inicia una copia de seguridad usando:
./launcher run app discourse backup

o

docker exec app bash -c "discourse backup"

Para obtener más información sobre las copias de seguridad desde la línea de comandos, consulta: Backup discourse from the command line.

32 Me gusta

¿Hay alguna forma de crear y descargar este archivo de copia de seguridad mediante programación? Es decir, tengo algunos scripts cron en el servidor que realizan copias de seguridad de muchos otros servicios, ¿puedo ejecutar unos pocos comandos CLI directamente en el servidor para obtener la copia de seguridad allí? ¿Quizás ./launcher app backup new-backup.backup o algo así?

Las copias de seguridad están en /var/discourse/shared/standalone/backups

Puedes iniciar una copia de seguridad con

./launcher run app discourse backup

O

docker exec app bash -c "discourse backup"

Creo.

2 Me gusta

¿Es esto también posible en un entorno de desarrollo de Docker, configurado como se describe en Install Discourse for development using Docker?

Cuando lo intento como se describe en la sección Crear una copia de seguridad anterior, obtengo el error pg_dump: error: connection to database "discourse_development" failed: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "postgres".

Registro completo de la copia de seguridad fallida
[2024-09-04 15:03:39] [STARTED]
[2024-09-04 15:03:39] ¡'raphael.dasgupta' ha iniciado la copia de seguridad!
[2024-09-04 15:03:39] Marcando la copia de seguridad como en curso...
[2024-09-04 15:03:39] Asegurándose de que '/src/tmp/backups/default/2024-09-04-150339' existe...
[2024-09-04 15:03:39] Asegurándose de que '/src/public/backups/default' existe...
[2024-09-04 15:03:39] Actualizando metadatos...
[2024-09-04 15:03:39] Volcando el esquema público de la base de datos...
[2024-09-04 15:03:40] pg_dump: error: connection to database "discourse_development" failed: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "postgres"
[2024-09-04 15:03:40] EXCEPTION: pg_dump failed
[2024-09-04 15:03:40] /src/lib/backup_restore/backuper.rb:173:in `dump_public_schema'
/src/lib/backup_restore/backuper.rb:36:in `run'
/src/script/spawn_backup_restore.rb:9:in `backup'
/src/script/spawn_backup_restore.rb:31:in `block in <main>'
/src/script/spawn_backup_restore.rb:4:in `fork'
/src/script/spawn_backup_restore.rb:4:in `<main>'
[2024-09-04 15:03:40] Limpiando cosas...
[2024-09-04 15:03:40] Eliminando restos de '.tar'...
[2024-09-04 15:03:40] Marcando la copia de seguridad como finalizada...
[2024-09-04 15:03:40] Notificando a 'raphael.dasgupta' del fin de la copia de seguridad...
1 me gusta

Tengo problemas para descargar una copia de seguridad. Cuando hice clic en el botón de descarga, recibí un aviso que decía que se había enviado un enlace de descarga a mi dirección de correo electrónico. Sin embargo, han pasado más de dos días y todavía no he recibido el correo electrónico.

Por favor, ayúdenme.

¿Has probado ./discourse-doctor?

Gracias por tu respuesta. El problema principal es que he configurado otro correo electrónico desde el backend como administrador. La conexión al puerto 587 sigue fallando y los correos electrónicos no se envían. ¿Hay alguna forma de evitarlo o hay otro puerto que pueda usar?

1 me gusta

¿Es esta la dirección de correo electrónico de respuesta alternativa que ha confirmado?

el puerto 587 es el que uso para conectarme a smtp.eu.mailgun.org

Esta es la configuración de mi servidor.

Entiendo, ¿así que quieres Office 365 en tu dominio raíz y correo electrónico transaccional de Discourse / receptor de correo por MX en un subdominio?

Sí, porque mi correo electrónico está configurado en 365

Creo que la causa del problema es que estás usando Office 365 para correos electrónicos transaccionales. Quizás quieras usar un servicio de correo transaccional como Mailgun o Brevo, ambos usados con Discourse sin muchos problemas.

1 me gusta

Puedo ayudarte con las configuraciones descritas. En este momento, no podrás enviar ni recibir correos electrónicos de Discourse utilizando tus suscripciones de Office 365.

¿Qué escala de foro estamos considerando? Un plan de correo electrónico gratuito puede ser suficiente.

Configuré la configuración de SMTP usando Brevo y utilicé el puerto 587, y todavía estoy recibiendo el mismo error. Por favor, ayúdenme, no estoy seguro de dónde me estoy equivocando.

Hmm… ¿qué tal si cambiamos el puerto a 2525?

1 me gusta

¿Pudiste hacer que esto funcionara?

Al subir el archivo de copia de seguridad, no se puede seleccionar el archivo de copia de seguridad descargado, aparece en gris y no se puede seleccionar. El archivo tiene la extensión tar.gz.

¿El archivo que está intentando restaurar es una versión reciente de Discourse?

¿Cambiaste el nombre del archivo? No funcionará si no es el nombre dado cuando se crea la copia de seguridad.

1 me gusta