doc-locale/fr-fr/administration/postgresql/moving.md
{{< details >}}
{{< /details >}}
Il est parfois nécessaire de déplacer vos bases de données d'une instance PostgreSQL vers une autre. Par exemple, si vous utilisez AWS Aurora et que vous vous préparez à activer l'équilibrage de charge de base de données, vous devez déplacer vos bases de données vers RDS pour PostgreSQL.
Pour déplacer des bases de données d'une instance vers une autre :
Rassemblez les informations sur les endpoints PostgreSQL source et de destination :
SRC_PGHOST=<source postgresql host>
SRC_PGUSER=<source postgresql user>
DST_PGHOST=<destination postgresql host>
DST_PGUSER=<destination postgresql user>
Arrêtez GitLab :
sudo gitlab-ctl stop
Effectuez un dump des bases de données depuis la source :
/opt/gitlab/embedded/bin/pg_dump -h $SRC_PGHOST -U $SRC_PGUSER -c -C -f gitlabhq_production.sql gitlabhq_production
/opt/gitlab/embedded/bin/pg_dump -h $SRC_PGHOST -U $SRC_PGUSER -c -C -f praefect_production.sql praefect_production
[!note] Dans de rares cas, vous pouvez constater des problèmes de performance de base de données après avoir effectué un
pg_dumpet une restauration. Cela peut se produire carpg_dumpne contient pas les statistiques utilisées par l'optimiseur pour prendre des décisions de planification des requêtes. Si les performances se dégradent après une restauration, résolvez le problème en identifiant la requête problématique, puis en exécutant ANALYZE sur les tables utilisées par la requête.
Restaurez les bases de données vers la destination (cela écrase toutes les bases de données existantes portant les mêmes noms) :
/opt/gitlab/embedded/bin/psql -h $DST_PGHOST -U $DST_PGUSER -f praefect_production.sql postgres
/opt/gitlab/embedded/bin/psql -h $DST_PGHOST -U $DST_PGUSER -f gitlabhq_production.sql postgres
Facultatif. Si vous migrez d'une base de données qui n'utilise pas PgBouncer vers une base de données qui l'utilise, vous devez ajouter manuellement une fonction pg_shadow_lookup à la base de données de l'application (généralement gitlabhq_production).
Configurez les serveurs d'applications GitLab avec les informations de connexion appropriées pour votre instance PostgreSQL de destination dans votre fichier /etc/gitlab/gitlab.rb :
gitlab_rails['db_host'] = '<destination postgresql host>'
Pour plus d'informations sur les configurations GitLab multi-nœuds, consultez les architectures de référence.
Reconfigurez pour que les modifications prennent effet :
sudo gitlab-ctl reconfigure
Redémarrez GitLab :
sudo gitlab-ctl start