¿Cómo descargar y restaurar la base de datos local de Discourse?

Acceda a la interfaz de copia de seguridad del sitio web y verá el estado actual de todas las copias de seguridad.


Haga clic en el botón de descarga.

Tenga en cuenta que al descargar, el sistema enviará un enlace a su dirección de correo electrónico.

Puede utilizar el enlace recibido en su correo electrónico para descargar los datos.

Enlace de descarga

Haga clic en la dirección del enlace de descarga recibida en el correo electrónico para descargar.


El archivo descargado es un archivo tar.gz, que deberá descomprimir para poder utilizarlo.

Por ejemplo, nuestro archivo de descarga actual es: isharkfly-2023-09-14-092024-v20230910021213.tar

Después de una serie de complejas rutas de descompresión, puede ver el archivo dump.sql.

Este archivo es su copia de seguridad completa de la base de datos.

Restauración de datos

La ruta de instalación de psql de PQadmin en Windows es: C:\Users\yhu\AppData\Local\Programs\pgAdmin 4\v7\runtime

Nuestro comando de ejecución es: 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

La base de datos local no se puede sobrescribir al restaurar.

Si su base de datos local ya existe, deberá vaciar la base de datos local existente antes de poder restaurarla.

El proceso de restauración de copias de seguridad requiere la restauración de todos los datos y la estructura de las tablas.

El programa de restauración no puede restaurar sobre la estructura de datos existente ni realizar una restauración incremental.

Comprobar datos de tablas

Compruebe los datos de las tablas para asegurarse de que algunos datos de las tablas se han restaurado en la actualidad.


Las marcas de tiempo suelen ser una buena forma de verificación.

1 me gusta

Complemento.
Si el servicio de correo falla, los administradores con permisos SSH pueden ver todos los archivos de copia de seguridad en /var/discouse/{standalone | web_only}/backup/default.

Una nota:
Si el servicio de correo falla, el administrador con permisos SSH puede ver todos los archivos de copia de seguridad en /var/discouse/{standalone | web_only}/backup/default.

3 Me gusta

¿Cómo puedo usar Minio para hacer copias de seguridad? No entiendo los mensajes de error del registro, el registro es el siguiente:

....
[2023-10-03 13:33:24] Eliminando el directorio temporal '/var/www/discourse/tmp/backups/default/2023-10-03-133319'...
[2023-10-03 13:33:24] Comprimiendo el archivo, esto puede tardar un poco...
[2023-10-03 13:33:25] Subiendo el archivo...
[2023-10-03 13:33:27] EXCEPCIÓN: 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] Eliminando copias de seguridad antiguas...
[2023-10-03 13:33:28] Limpiando cosas...
[2023-10-03 13:33:28] Eliminando el archivo del almacenamiento local...
[2023-10-03 13:33:28] Eliminando restos de '.tar'...
[2023-10-03 13:33:28] Marcando la copia de seguridad como finalizada...
[2023-10-03 13:33:28] Notificando a 'XXX' del fin de la copia de seguridad...

El registro anterior debería indicar que S3 no tiene permisos.

Confirma que la configuración de permisos de tu S3 es correcta.

Aquí están mis configuraciones, por favor, compruébalas para ver dónde está el problema:

  1. Configuración de Discourse
  2. Configuración de permisos del bucket de respaldo de 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. Los permisos del bucket de carga de Minio son públicos

Echa un vistazo a este artículo: discourse-docs/minio.md at master · rishabhnambiar/discourse-docs · GitHub

Este artículo todavía es de cuando existía el estilo de ruta, ahora solo admite el estilo DNS, no se pueden encontrar tutoriales de configuración de MinIO en toda la red.

Veamos si el problema podría estar en la configuración de Minio.

Intenta usar otra herramienta, por ejemplo, una que pueda acceder directamente al bucket, para ver si puedes subir archivos directamente.

Si puedes subir archivos directamente aquí, entonces es muy probable que sea un problema de configuración de Discourse. Si no puedes subir archivos directamente aquí, entonces es muy probable que sea un problema de permisos.