PostgreSQLLa base de données la plus sophistiquée au monde.

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.1.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é.

  1. 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.

  2. 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.1.23 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é.

  3. 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.

    Les très vieilles versions pourraient ne pas disposer de pg_ctl. Si vous ne le trouvez pas ou s'il ne fonctionne pas, trouvez l'identifiant du processus du vieux serveur, en saisissant par exemple

    ps ax | grep postmaster
    

    et en lui envoyant un signal pour le stopper, de cette façon :

    kill -INT IDprocessus
    
  4. 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.1.23, 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/postmaster -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.4, « Migration entre les différentes versions » que vous êtes encouragés à lire dans tous les cas.