Préparation classique :
cd /home/damien/ wget ftp://ftp4.fr.postgresql.org/pub/mirrors/postgresql/source/v9.0.2/postgresql-9.0.2.tar.gz tar xzvf postgresql-9.0.2.tar.gz cd postgresql-9.0.2/ ./configure make
Remplacement des anciens binaires :
sudo /etc/init.d/postgresql-9.0 stop sudo cp -pr /usr/local/pgsql/bin/ /usr/local/pgsql/bin-9.0beta3/ sudo make install
Redémarrage
sudo /etc/init.d/postgresql-9.0 start
FAIL !
FATAL: database files are incompatible with server DETAIL: The database cluster was initialized with CATALOG_VERSION_NO 201004261, but the server was compiled with CATALOG_VERSION_NO 201008051.
J'ai oublié que le format des données a changé entre la 9.0beta3 et la 9.0.2 !
c'est l'occasion de tester pg_upgrade :
cd ~/postgresql-9.0.2/contrib/pg_upgrade make sudo make install cd ../pg_upgrade_support/ make sudo make install
On sauvegarde l'ancien PGDATA et on en crée un nouveau :
sudo su - postgres cd /var/lib/postgresql/ mv 9.0 9.0-beta3 mkdir 9.0 /usr/local/pgsql/bin/initdb -D /var/lib/postgresql/9.0/
Kowabonga !
/usr/local/pgsql/bin/pg_upgrade \ --old-datadir=/var/lib/postgresql/9.0-beta3/ \ --new-datadir=/var/lib/postgresql/9.0 \ --old-bindir=/usr/local/pgsql/bin-9.0beta3/ \ --new-bindir=/usr/local/pgsql/bin/ \ --old-port=543300 \ --new-port=543400
Il ne reste plus qu'à récupérer la conf :
cd /var/lib/postgresql/9.0 mv postgresql.conf postgresql.conf.orig cp ../9.0-beta3/postgresql.conf . mv pg_hba.conf pg_hba.conf.orig cp ../9.0-beta3/pg_hba.conf .
et c'est reparti !
sudo /etc/init.d/postgresql-9.0 start
Attention : cela va péter la réplication vers Dumbo. Il faut donc faire la même opération sur Dumbo.