61 lines
2.0 KiB
Markdown
61 lines
2.0 KiB
Markdown
# Migration PostgreSQL
|
||
|
||
Dans ce guide, je vous explique les étapes que j'ai appliquée récemment pour migrer une base de données PostgreSQL d'un ancien système à une nouvelle infrastructure. Il couvre la mise à niveau du système, la sauvegarde des bases, leur transfert et restauration, ainsi que la réinitialisation du mot de passe administrateur.
|
||
|
||
## upgrade de l'ancien SGBD
|
||
Pour garantir une migration fluide, commencez par mettre à jour le système et ses packages.
|
||
|
||
🖥️ Commandes à effectuer dans le terminal en tant que **root** !
|
||
```
|
||
apt update
|
||
|
||
apt upgrade
|
||
```
|
||
|
||
ℹ️ La version actuelle de PostGres est à 17.1.2.
|
||
|
||
## Sauvegarde des anciennes bases
|
||
Une sauvegarde complète de vos bases et de vos rôles est indispensable avant toute migration.
|
||
|
||
🖥️ Commandes à effectuer dans le terminal avec le user **postgres** :
|
||
|
||
Sauvegarde des bases de données :
|
||
```
|
||
pg_dumpall -U postgres > sauvegarde.sql
|
||
```
|
||
|
||
Sauvegarde des rôles uniquement :
|
||
```
|
||
pg_dumpall -U postgres --roles-only > roles.sql
|
||
```
|
||
|
||
Les fichiers sauvegarde.sql et roles.sql contiennent toutes les informations nécessaires pour la restauration.
|
||
|
||
## Transfert vers la nouvelle machine
|
||
Transférez les fichiers sauvegardés depuis l'ancienne machine vers la nouvelle.
|
||
|
||
Copie des fichiers `roles.sql` et `sauvegarde.sql` de l'ancienne vers la nouvelle machine. Utilisation de `scp`.
|
||
|
||
## Restauration
|
||
Une fois les fichiers copiés, effectuez leur restauration sur la nouvelle machine.
|
||
|
||
🖥️ Commandes à effectuer dans le terminal avec l'utilisateur **postgres**
|
||
|
||
Importation des rôles :
|
||
```
|
||
psql -U postgres -f roles.sql
|
||
```
|
||
|
||
Restauration des bases de données
|
||
```
|
||
psql -U postgres -f sauvegarde.sql
|
||
```
|
||
|
||
## Réinitialiser le mot de passe de PostGres
|
||
Pour des raisons de sécurité, réinitialisez le mot de passe de l'utilisateur **postgres**.
|
||
|
||
🖥️ Commandes à effectuer dans le terminal en tant que **root** :
|
||
|
||
```
|
||
echo "ALTER USER postgres with encrypted password 'your_password';" | sudo -u postgres psql
|
||
``` |