Cómo hacer una copia de seguridad y restaurar toda la carpeta /var/discourse
Debido a problemas con el proceso habitual de copia de seguridad y restauración, me preguntaba si podía respaldar toda la carpeta /var/discourse y reutilizarla en otro servidor. Esto es lo que hice…
En el servidor de producción:
rsync_opts="\
--recursive \
--links \
--hard-links \
--safe-links \
--owner \
--group \
--perms \
--times \
--delete \
--sparse \
--compress \
--partial \
--rsh=ssh
"
dir=/var/discourse
rsync $rsync_opts "$dir/" root@xx.xx.xx.xx:"/var/production-backup/$dir"
En el servidor de staging:
Instalar Docker.
rsync --recursive --links --hard-links --safe-links --owner --group --perms --times --delete --sparse --compress --partial /var/production-backup/var/discourse/ /var/discourse
Pero obtengo un error 502 Bad Gateway.
Estoy tratando de investigar.
cd /var/discourse
./launcher start app
root@whonix-app:/var/www/discourse# service postgresql status
12/main (puerto 5432): apagado
root@whonix-app:/var/www/discourse# service postgresql start
[....] Iniciando servidor de base de datos PostgreSQL 12: main[....] Error: El clúster es propiedad del ID de grupo 116 que no existe ... fallido!
fallido!
Adivino algunas soluciones:
chown -R postgres.postgres /etc/postgresql
chown -R postgres.postgres /shared/postgres_*
chown -R postgres.postgres /var/lib/postgresql
chown -R postgres.postgres /var/log/postgresql
chown -R redis.redis /etc/redis/redis.conf
chown -R redis.redis /shared/redis_data
chown -R redis.redis /var/run/redis
chown -R redis.redis /var/lib/redis
chown -R redis.redis /var/log/redis
chgrp -R ssl-cert /etc/ssl/private
Pero no ayudó.
root@whonix-app:/var/www/discourse# service postgresql start
[....] Iniciando servidor de base de datos PostgreSQL 12: main[....] Error: /usr/lib/postgresql/12/bin/pg_ctl /usr/lib/postgresql/12/bin/pg_ctl start -D /shared/postgres_data -l /var/log/postgresql/postgresql-12-main.log -s -o -c config_file="/etc/postgresql/12/main/postgresql.conf" salió con estado 1: 2020-05-25 10:20:10.501 UTC [603] FATAL: los archivos de la base de datos son incompatibles con el servidor 2020-05-25 10:20:10.501 UTC [603] DETALLE: El directorio de datos fue inicializado por la versión 10 de PostgreSQL, que no es compatible con esta versión 12.2 (Debian 12.2-2.pgdg100+1). pg_ctl: no se pudo iniciar el servidor. Examine la salida de registro. ... fallido!
fallido!
¿Por qué se introducen estos problemas de permisos de archivo?
¿Por qué se actualiza PostgreSQL de la versión 10 a la versión 12 simplemente copiando toda la carpeta de un servidor a otro? Debo estar haciendo algo mal.
¿Podrían compartirme, por favor, instrucciones sobre cómo hacer una copia de seguridad completa de la aplicación Discourse en un servidor y moverla a otro?