Outils personnels

Mise à jour PostgreSQL 8.1 en 8.4 - 9.0 : Différence entre versions

De wikiGite

 
(Une révision intermédiaire par un autre utilisateur non affichée)
Ligne 1 : Ligne 1 :
 +
= Sauvegarde des bases existantes =
 
Sauvegarder les bases, si nécessaire (sinon, supprimer purement et simplement le répertoire /var/lib/pgsql/data, il sera recréé à l'init)
 
Sauvegarder les bases, si nécessaire (sinon, supprimer purement et simplement le répertoire /var/lib/pgsql/data, il sera recréé à l'init)
  
Ligne 12 : Ligne 13 :
 
  mv /var/lib/pgsql/data /pgbak
 
  mv /var/lib/pgsql/data /pgbak
  
 +
== PostgreSQL 8.4 ==
 
Mettre à jour :
 
Mettre à jour :
 
  yum remove postgresql
 
  yum remove postgresql
Ligne 33 : Ligne 35 :
 
  exit
 
  exit
  
== Installation PostgresSQL 9 ==
+
== PostgresSQL 9 ==
 
Si PostgreSQL8 était déjà installé il faut l'avoir désinstallé avant (avec sauvegardes des bases) :
 
Si PostgreSQL8 était déjà installé il faut l'avoir désinstallé avant (avec sauvegardes des bases) :
  mkdir /pgbak
+
  yum remove postgresql
chown postgres:postgres /pgbak/
+
ou
su - postgres
+
  yum remove postgresql84
pg_dumpall --globals-only > /pgbak/globals.sql
 
pg_dump --create --oids --format=c --verbose --file=/pgbak/dbX dbX
 
exit
 
  yum remove postgresql84 postgresql84-server
 
  
 
Installer le repository PostgreSQL conrrespondant à la version voulue (http://www.pgrpms.org/howtoyum.php) :
 
Installer le repository PostgreSQL conrrespondant à la version voulue (http://www.pgrpms.org/howtoyum.php) :

Version actuelle datée du 12 février 2013 à 09:46

Sauvegarde des bases existantes

Sauvegarder les bases, si nécessaire (sinon, supprimer purement et simplement le répertoire /var/lib/pgsql/data, il sera recréé à l'init)

Les "globales" d'abord :

mkdir /pgbak
chown postgres:postgres /pgbak/
su - postgres
pg_dumpall --globals-only > /pgbak/globals.sql 
pg_dump --create --oids --format=c --verbose --file=/pgbak/dbX dbX
exit

Et sauvegarder les bases à froid (éteintes) :

/etc/init.d/postgresql stop
mv /var/lib/pgsql/data /pgbak

PostgreSQL 8.4

Mettre à jour :

yum remove postgresql
yum install postgresql84 postgresql84-server

Réinitialiser les bases système :

/etc/init.d/postgresql initdb

Restorer les fichiers de configuration à partir de /pgback/*.conf, faire les modification nécessaires (dans le pg_hba.conf notamment, des oprions ont changé : sameuser n'existe plus, remplacer password par md5).

Eventuellement :

chkconfig --level 35 postgresql on

Lancer postgresql

/etc/init.d/postgresql start

Restorer les rôles, et les bases de données :

su - postgres
psql -f /pgbak/globals.sql
pg_restore --create -d postgres /pgbak/dbX
exit

PostgresSQL 9

Si PostgreSQL8 était déjà installé il faut l'avoir désinstallé avant (avec sauvegardes des bases) :

yum remove postgresql

ou

yum remove postgresql84

Installer le repository PostgreSQL conrrespondant à la version voulue (http://www.pgrpms.org/howtoyum.php) :

wget http://www.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpm

Désactiver le repo par défaut (enable=0 dans /etc/yum.repos.d/pgdg-90-centos.repo), puis :

yum --enablerepo=pgdg90 install postgresql90 postgresql90-server

Initialiser la base de données

/etc/init.d/postgresql-9.0 initdb

Les bases sont désormais dans /var/lib/pgsql/9.0/data

/etc/init.d/postgresql-9.0 start

Et restorer les bases :

su - postgres
psql -f /pgbak/globals.sql
pg_restore --create -d postgres /pgbak/dbX