Como fazer backup e restaurar toda a pasta /var/discourse?
Devido a problemas no processo usual de backup e restauração, eu me perguntei se poderia fazer backup de toda a pasta /var/discourse e reutilizá-la em outro servidor. Foi isso que fiz…
No servidor de produção:
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"
No servidor de staging:
Instale o Docker.
rsync --recursive --links --hard-links --safe-links --owner --group --perms --times --delete --sparse --compress --partial /var/production-backup/var/discourse/ /var/discourse
Mas estou recebendo 502 Bad Gateway.
Tentando investigar.
cd /var/discourse
./launcher start app
root@whonix-app:/var/www/discourse# service postgresql status
12/main (porta 5432): desligado
root@whonix-app:/var/www/discourse# service postgresql start
[....] Iniciando servidor de banco de dados PostgreSQL 12: main[....] Erro: O cluster é propriedade [FAIL do ID 116, que não existe ... falhou!
falhou!
Acho que algumas correções:
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
Mas não ajudou.
root@whonix-app:/var/www/discourse# service postgresql start
[....] Iniciando servidor de banco de dados PostgreSQL 12: main[....] Erro: /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" saiu com status 1: 2020-05-25 10:20:10.501 UTC [603] FATAL: arquivos de banco de dados incompatíveis com o servidor 2020-05-25 10:20:10.501 UTC [603] DETAIL: O diretório de dados foi inicializado pela versão 10 do PostgreSQL, que não é compatível com esta versão 12.2 (Debian 12.2-2.pgdg100+1). pg_ctl: não foi possível iniciar o servidor. Examine o lo[FAILput. ... falhou!
falhou!
Por que esses problemas de permissão de arquivo foram introduzidos?
Por que o PostgreSQL foi atualizado da versão 10 para a versão 12 apenas copiando toda a pasta de um servidor para outro? Devo estar fazendo algo errado.
Você poderia, por gentileza, compartilhar instruções sobre como fazer backup de todo o aplicativo Discourse em um servidor e movê-lo para outro servidor?