Procédure de migration PostgreSQL 8.0 vers 8.2

I - Sauvegarder les bases de la version 8.0.X

  1. Sauvegarder les bases de données existantes

Pour cela, exécuter le script suivant pour chaque base de données :

/wct95/bin/serveurBD/sauvegardeDB.sh <base> <fichier_dump>

  1. Sauvegarder le répertoire /var/lib/pgsql/data

mv /var/lib/pgsql/data <rep_sauvegarde>

  1. Désinstaller les rpms résultant de la requête précédente

rpm -qa | grep postgresql rpm -e <rpm_1> <rpm_2> ... <rpm_x>

II - Installer Postgresql 8.2.11

  1. Télécharger des rpms de la version 8.2.11 à l'adresse suivante : http://www.postgresql.org/ftp/binary/v8.2.11/linux/rpms/redhat/rhel-4-i386/

  1. Installer les rpms
    1. Simuler l'installation jusqu'à ce qu'il n'y ai plus d'erreur

rpm -Uvh <rpm1> <rpm2> ... <rpm_x> --test

Si des librairies manquent (généralement libq.so.3), installer les avec yum : yum install <librairies_manquantes>

  1. Installer les rpms

rpm -Uvh <rpm1> <rpm2> ... <rpm_x>

  1. Initialiser la base de données (vérifier que votre système est bien en encodage Fr-fr.UTF-8 avec la commande locale sinon changer la : /etc/sysconfig/i18n)

service postgresql initdb -E "UNICODE"

III - Configurer Postgresql

  1. Configurer les fichiers de configuration Postgresql
    1. Remplacer le fichier des droits d'accès de postgresql

cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.initial cp <rep_sauvegarde>/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf

  1. Editer le fichier /var/lib/pgsql/data/postgresql.conf
    • remplacer listen_adresses='localhost' par listen_adresses='*'
  • appliquer la configuration de la précédente plate-forme
  1. Démarrer le service postgresql

exit service postgresql start

  1. Créer les droits/utilisateurs Postgresql
    1. Créer un utilisateur système en tant que root

adduser webct95

  1. Créer un utilisateur postgresql

su - postgres createuser webct95 (répondez oui) psql template1 alter role webct95 with password 'webct95'; \q createlang plpgsql template1 exit

IV - Restaurer les base de données dans la version 8.2.11

  1. Restaurer les bases

Pour cela, exécuter le script suivant pour chaque base de données :

/wct95/bin/serveurBD/restaureDB.sh <base> <fichier_dump>