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

15.4. Mise à jour

Ces instructions supposent que votre installation existante se trouve dans le répertoire /usr/local/pgsql, et que l'aire de données est dans /usr/local/pgsql/data. Modifiez les chemins de façon approprié.

Le format de stockage interne des données change typiquement à chaque version majeure de PostgreSQL™. Du coup, si vous mettez à jour une installation existante qui n'a pas le numéro de version « 8.3.x », vous devez sauvegarder et restaurer vos données. Si vous mettez à jour à partir de PostgreSQL™ « 8.3.x », la nouvelle version peut utiliser vos fichiers de données actuels, donc vous pouvez ignorer les étapes de sauvegarde et de restauration ci-dessous parce qu'elles sont inutiles.

  1. Dans le cas de la réalisation d'une sauvegarde, assurez-vous que votre base de données n'est pas en pleine mise à jour. Ceci n'affecte pas l'intégrité de la sauvegarde mais les données modifiées seraient bien sûr non inclus. Si nécessaire, éditez les droits dans le fichier /usr/local/pgsql/data/pg_hba.conf (ou son équivalent) pour interdire l'accès à tous sauf vous.

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

  2. Arrêtez l'ancien serveur :

    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.

  3. En cas de restauration d'une sauvegarde, renommer ou supprimer l'installation d'un répertoire. Il est préférable de renommer le répertoire plutôt que de le supprimer, au cas où vous auriez des problèmes et que vous auriez besoin d'y revenir. Gardez en tête que le répertoire peut prendre beaucoup d'espace disque. Pour renommer le répertoire, utilisez une commande comme celle-ci :

    mv /usr/local/pgsql /usr/local/pgsql.old
    
  4. Installez la nouvelle version de PostgreSQL™ comme indiquée dans la prochaine section Section 15.5, « Procédure d'installation ».

  5. Créez un nouveau cluster de bases de données. Rappelez-vous que vous devez exécuter ces commandes en utilisant le compte superutilisateur initial (que vous avez déjà si vous mettez à jour).

    /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
    
  6. Restaurez votre précédent pg_hba.conf et toutes les modifications de postgresql.conf.

  7. Lancez le serveur de bases de données, de nouveau à partir du compte superutilisateur :

    /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
    
  8. Enfin, restaurez vos données à partir de votre sauvegarde avec :

    /usr/local/pgsql/bin/psql -d postgres -f outputfile
    

    en utilisant le nouveau psql.

Des informations supplémentaires apparaissent dans la documentation Section 24.5, « Migration entre versions » incluant les instructions sur la façon dont l'installation précédente peut continuer à s'exécuter alors que le nouvelle est installée.