PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 28/08/2018 22:43:13

Deun
Membre

pg_restore version non supportée dans l'en-tête du fichier d'archive

Bonjour,

Sur mon ancien Linux fedora j'avais un serveur 9.6.8 , sur la mageia postgres pg_restore (PostgreSQL) 9.6.7

Est-ce que cela suffit pour justifier de l'erreur ? Faut-il vraiment que j'installe la version 9.6.8 ?

En plus je ne comprend pas car mon message d'erreur me parle d'une version (1.13) .... ?  Ce serait la version de quoi ça ?

Merci.

Hors ligne

#2 29/08/2018 08:02:20

ruizsebastien
Membre

Re : pg_restore version non supportée dans l'en-tête du fichier d'archive

Bonjour,

pouvez-vous nous poster le message d'erreur complet ?
Etes-vous sûr de ne pas avoir une autre installation de postgresql que la 9.6 sur vos linux.
Je sais d'expérience que fedora installe par défaut une vieille version de PG (je ne sais pas pour mageia).
Que vous renvoie "which psql" ou "which pg_dump" ?
Comme ça je dirais que le dump a était réalisé avec une version de pg_dump inférieure à la 9.6 (9.4 ou 9.2 par exemple).

Cordialement,

Dernière modification par ruizsebastien (29/08/2018 08:03:53)


Cordialement,

Sébastien.

Hors ligne

#3 29/08/2018 08:57:39

gleu
Administrateur

Re : pg_restore version non supportée dans l'en-tête du fichier d'archive

Oui, ça suffit pour justifier l'erreur. La 9.6.8 contient un correctif de sécurité qui a impacté pg_dump notamment, correctif qui fait que le format de sauvegarde à évoluer (la version 1.13 est la version du format de sauvegarde).

Pour moi, vous avez trois solutions :
* installer la version 9.6.8 (ou mieux la dernière version corrective, la 9.6.10 actuellement, pour ne pas tomber sur un bug déjà corrigé... ça prend cinq minutes à tout casser, il n'y a vraiment aucune raison de ne pas le faire)
* récupérer la sauvegarde au format SQL et la restaurer (pg_restore fichier_sauvegarde > fichier_sauvegarde.sql ; psql -f fichier_sauvegarde.sql base)
* installer le pg_restore de la 9.6.8 sur le serveur en 9.6.7

Il est à savoir qu'il n'y a aucune garantie par la communauté PostgreSQL qu'une sauvegarde réalisée avec un pg_dump en version X puisse être restaurée en version X-1. Il est toujours conseillé de sauvegarder avec la version sur laquelle on veut restaurer.


Guillaume.

Hors ligne

#4 02/09/2018 00:04:23

Deun
Membre

Re : pg_restore version non supportée dans l'en-tête du fichier d'archive

Ha! Ben, faudrait que je consacre une machine un jour qui serve serveur aussi conservatrice que notre sainte église apostolique romaine. Comme ça au moins, les choses seront immuables.
Ceci étant je conçois qu'effectivement ces merveilleux outils genre posgresql ne sont pas conçus pour ètre utilisés par tout le monde, mais enfin, faut avouer que rien n'est simple dans tout cela. On pourrait imaginer un paquet pg_dump / pg_restore indépendant, que l'on pourrait choisir à la version que l'on veut sans réinstaller tout le serveur je pense....

Bon enfin donc la meilleure solution de fonctionne pas avec l'installateur de EDB qui reste bloqué sur l'initialisation du cluster. Et je ne vois pas comment l'aider à installer son cluster. Contrariant n'est-il pas ? Après un oeil sur le répertoire que je lui avais assigné durant l'installation pour les données, je m'aperçois qu'il n'est pas vide. Du coup je relance

 su -c './postgresql-9.6.10-2-linux-x64.run' 

Et hop, ça fonctionne.

j'avais vaguement essayé la deuxième solution mais je ne suis plus pourquoi la sauvegarde depuis pgadmin3 avait merdé et j'avais abandonné. Vais tenté de nouveau. Je vous tiens au jus.
Et alors la 3ième possibilité m'épate - ça se rapproche quand-même de mon petit commentaire ci-dessus. Comment peut-on faire cela ?

Hors ligne

#5 02/09/2018 10:33:03

rjuju
Administrateur

Re : pg_restore version non supportée dans l'en-tête du fichier d'archive

Les paquets communautaires (rpm et deb) permettent d'installer les outils clients uniquement (psql, pg_dump etc) de la version majeure voulue.  Pour debian, les anciennes versions mineures sont également conservées depuis quelque temps, aucune idée si c'est également le cas pour les paquets rpm.


Personnellement, je n'ai jamais essayé les installeurs EDB sur linux, du coup je n'ai aucune idée de comment ils marchent.  Je suppose qu'ils essayent de procéder à une installation "standard" (avec utilisateur postgres dédié etc), du coup ça me semble normal qu'ils aient besoin de suffisamment de privilèges pour pouvoir s'exécuter.

Hors ligne

#6 03/09/2018 13:33:34

gleu
Administrateur

Re : pg_restore version non supportée dans l'en-tête du fichier d'archive

C'est aussi le cas pour les paquets RPM.


Guillaume.

Hors ligne

#7 10/09/2018 16:16:15

Deun
Membre

Re : pg_restore version non supportée dans l'en-tête du fichier d'archive

Pour rpm :
Il doit falloir un dépôt particulier sinon une recherche avec dnf ne me rtourne aucun résultat sur pg_dump ou restore.

Hors ligne

#8 10/09/2018 17:03:44

gleu
Administrateur

Re : pg_restore version non supportée dans l'en-tête du fichier d'archive

Non, pas de dépôt particulier nécessaire. Les paquets ne s'appellent pas pg_dump et pg_restore. Ça fait partie du paquet des clients (donc postgresql96 pour la 9.6 par exemple).


Guillaume.

Hors ligne

#9 12/09/2018 15:28:01

Deun
Membre

Re : pg_restore version non supportée dans l'en-tête du fichier d'archive

Alors quand-même pour ceux qui comprennent pas tout comme moi, il existe un dépôt spécial sql sur lequel il ya plus de choix de versions :

https://yum.postgresql.org/

Hors ligne

#10 12/09/2018 15:30:13

gleu
Administrateur

Re : pg_restore version non supportée dans l'en-tête du fichier d'archive

Oui, c'est le dépôt officiel de la communauté, qu'il est conseillé d'utiliser en permanence.


Guillaume.

Hors ligne

Pied de page des forums