web-dev-qa-db-fra.com

Comment mettre à niveau PostgreSQL de la version 8.4 à 9.4?

Je veux mettre à jour mon PostgreSQL de la version 8.4 à 9.4 .

Le documentation n'est pas très clair pour moi.

  1. Vais-je perdre mes anciennes bases de données si je fais la mise à niveau?
  2. Comment puis-je sauvegarder mes anciennes bases de données si je dois les perdre après la mise à niveau?
  3. Comment puis-je mettre à jour mon psql?

Mon PostgreSQL fonctionne sur un serveur CentOS 6.6 .

18
Alex Jolig

C'est ainsi que j'ai résolu mon problème.

Mettre à niveau Postgresql 8.4 à 9.4 en Centos

 1. Yum Install PG9.4
 2. wget http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
 3. yum install pgdg-redhat94-9.4-1.noarch.rpm
 4. yum install postgresql94-server
 5. service postgresql-9.4 initdb
 6. chkconfig postgresql-9.4 on

Données de sauvegarde

 7. su - postgres

 8. pg_dumpall > dump.sql

Restaurer les données

 9. service postgresql stop

 10. service postgresql-9.4 start

 11. su - postgres

 12. psql < dump.sql

Config Network Access

vi /var/lib/pgsql/9.4/data/postgresql.conf

 1. listen_addresses = '*'
 2. port = 5432

/var/lib/pgsql/9.4/data/pg_hba.conf

# "local" is for Unix domain socket connections only
local   all         all                               ident
# IPv4 local connections:
Host    all         all         127.0.0.1/32          ident
Host    all         all         130.51.79.0/24        md5
Host    all         all         10.210.29.0/24        md5
# IPv6 local connections:
Host    all         all         ::1/128               ident

Supprimer PG8.4

 1. yum remove postgresql
 2. ln -s /usr/pgsql-9.4/bin/psql /usr/local/bin/psql
25
Alex Jolig

service postgresql-9.4 initdb ne fonctionnait pas pour moi, je devais utiliser Sudo /usr/pgsql-9.4/bin/postgresql94-setup initdb (trouvé ici ).

Merci pour les excellentes instructions, j'ai pu passer de 9.2 à 9.4 sans aucun problème, même si j'ai dû reconfigurer mon pg_hba.conf fichier, c'était trivial.

3
Jeff

Mieux que de lier un seul binaire psql postgresql94 à/usr/(local /) bin est d'utiliser le système alternatif:

cd /etc/alternatives/
ls pgsql-* -1 | xargs -L 1 alternatives --auto

Ce qui crée des liens de binaires, mans, confs, ... de postgresql94 vers des répertoires par défaut pour CentOS.

1
Michal Michaláč