14.4. Si vous effectuez une mise à jour
Le format de stockage interne des données a changé avec cette
nouvelle version de PostgreSQL™. Toutefois, si vous faites une
mise à jour qui n'a pas un numéro de version de la forme
« 8.2.x », vous devrez faire une
sauvegarde et une restauration des données ainsi que c'est montré
ici. Les instructions considèrent que votre installation existante
est dans le répertoire /usr/local/pgsql et
que la zone de données est dans /usr/local/pgsql/data. Remplacez les chemins de façon
approprié.
-
Assurez-vous que vos données ne sont pas mises à jour pendant
ou après la sauvegarde. Cela n'affecterait en rien l'intégrité
de la sauvegarde mais les données modifiées ne seraient pas
incluses. Si nécessaire, éditez le fichier /usr/local/pgsql/data/pg_hba.conf (ou
équivalent) pour verrouiller tous les accès sauf les vôtres.
-
Pour effectuer une sauvegarde de votre base, saisissez :
pg_dumpall > fichierdesortie
Si vous souhaitez conserver les identifiants d'objets
(lorsqu'ils sont utilisés comme clé étrangère), utilisez
l'option -o lors de l'exécution de
pg_dumpall.
Pour effectuer une sauvegarde, vous pouvez exécuter la commande
pg_dumpall incluse dans la
distribution de votre version actuelle. Cependant, pour de
meilleurs résultats, essayez d'utiliser la commande
pg_dumpall
contenue dans PostgreSQL™ 8.2.5 puisqu'elle
corrige les erreurs des versions précédentes. Ce conseil est
absurde tant que vous n'avez pas encore installé la nouvelle
version. Il devient valable si vous souhaitez installer la
nouvelle version en parallèle. Dans ce cas, vous pouvez faire
l'installation normalement et ne transférer les données
qu'après, ce qui réduira le temps d'indisponibilité.
-
Si vous installez la nouvelle version à la place de l'ancienne,
arrêtez l'ancien serveur, au plus tard avant d'installer les
nouveaux fichiers :
pg_ctl stop
Sur les systèmes qui lancent PostgreSQL™ au démarrage, il y a
probablement un fichier de démarrage qui peut faire la même
chose. Par exemple, sur un système Red
Hat Linux, la commande
/etc/rc.d/init.d/postgresql stop
devrait fonctionner. Une autre possibilité est
pg_ctl stop
.
-
Si vous faites l'installation au même endroit que l'ancienne,
il peut être une bonne idée de déplacer l'ancienne version au
cas où vous auriez des problèmes et que vous ayez besoin de
revenir en arrière. Utilisez une commande telle que :
mv /usr/local/pgsql /usr/local/pgsql.old
Après l'installation de PostgreSQL™ 8.2.5, créez un répertoire
pour les données et démarrez le nouveau serveur. Rappelez-vous que
vous devez exécuter ces commandes en étant connecté avec
l'utilisateur dédié à la base (qui doit déjà exister si vous changez
juste de version).
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
Enfin, restaurez vos données avec
/usr/local/pgsql/bin/psql -d postgres -f outputfile
en utilisant le
nouveau
psql.
Des informations supplémentaires apparaissent dans la
Section 23.5,
« Migration entre versions »
que vous êtes
encouragés à lire dans tous les cas.