Comment sauvegarder et restaurer l’intégralité du dossier /var/discourse ?
En raison de problèmes avec le processus habituel de sauvegarde et de restauration, je me demandais s’il était possible de sauvegarder l’intégralité du dossier /var/discourse et de le réutiliser sur un autre serveur. Voici ce que j’ai fait…
Sur le serveur de production :
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"
Sur le serveur de préproduction :
Installer Docker.
rsync --recursive --links --hard-links --safe-links --owner --group --perms --times --delete --sparse --compress --partial /var/production-backup/var/discourse/ /var/discourse
Mais je reçois une erreur 502 Bad Gateway.
Je tente d’en investiguer la cause.
cd /var/discourse
./launcher start app
root@whonix-app:/var/www/discourse# service postgresql status
12/main (port 5432) : arrêté
root@whonix-app:/var/www/discourse# service postgresql start
[....] Démarrage du serveur de base de données PostgreSQL 12 : main[....] Erreur : Le cluster est détenu par l'identifiant de groupe 116 qui n'existe pas ... échec !
échec !
Je suppose qu’il faut appliquer quelques correctifs :
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
Mais cela n’a pas aidé.
root@whonix-app:/var/www/discourse# service postgresql start
[....] Démarrage du serveur de base de données PostgreSQL 12 : main[....] Erreur : /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" s'est terminé avec le statut 1 : 2020-05-25 10:20:10.501 UTC [603] FATAL : les fichiers de la base de données sont incompatibles avec le serveur 2020-05-25 10:20:10.501 UTC [603] DETAIL : Le répertoire de données a été initialisé avec la version 10 de PostgreSQL, qui n'est pas compatible avec cette version 12.2 (Debian 12.2-2.pgdg100+1). pg_ctl : impossible de démarrer le serveur. Examinez le lo[FAILput. ... échec !
échec !
Pourquoi ces problèmes de permissions de fichiers sont-ils apparus ?
Pourquoi PostgreSQL passe-t-il de la version 10 à la version 12 simplement en copiant l’intégralité du dossier d’un serveur à un autre ? Je dois faire quelque chose de mal.
Pourriez-vous s’il vous plaît partager des instructions sur la façon de sauvegarder l’application Discourse complète sur un serveur et de la déplacer vers un autre serveur ?