Outils personnels

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

De wikiGite

(Installation PostgresSQL 9)
 
(4 révisions intermédiaires par un autre utilisateur non affichées)
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) :
 +
yum remove postgresql
 +
ou
 +
yum remove postgresql84
 +
 
 
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) :
 
  wget http://www.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpm
 
  wget http://www.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpm
Puis
+
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
 
  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

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