Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & PostgreSQL
PHP & PostgreSQL Forum d'entraide sur PostgreSQL avec PHP. Avant de poster -> FAQ PostgreSQL, Cours PostgreSQL. Pour les questions concernant le moteur PostgreSQL plutôt que les fonctions PHP, merci d'utiliser le forum PostgreSQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/08/2011, 10h50   #1
FMIMF
Candidat au titre de Membre du Club
 
Inscription : mai 2011
Messages : 13
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 13
Points : 10
Points : 10
Par défaut Déplacer (grosse) table entre deux serveurs versions différentes

Bonjour,

J'ai actuellement une grosse table (36M de lignes, 91 colonnes) sur un poste de développement en win7/pg8.3
je dois la déplacer sur un serveur debian/pg8.4

Après quelques recherches j'ai cru comprendre qu'il n'y avait pas de méthode directe pour bouger une table entre deux database pg.
J'ai essayé de générer un backup puis de le restaurer, mais fonctionne pas a priori à cause des versions différentes.

J'ai essayé des solutions bricolées (Talend Etl) mais la taille de la base pose problème.

Je pense essayer d'utiliser Slony mais après une rapide recherche sur le site Slony windows n'a l'air de gérer qu'à partir de la version 8.4.

Quelqu'un aurait-il une idée sur la question ou des conseils?
FMIMF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 16h27   #2
estofilo
Modérateur
 
Inscription : octobre 2008
Messages : 1 702
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 702
Points : 2 347
Points : 2 347
Il faut utiliser pg_dump sur la base source et restaurer le fichier résultant avec pg_restore/psql sur la base destination.
C'est la méthode la plus couramment utilisée.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 09h23   #3
FMIMF
Candidat au titre de Membre du Club
 
Inscription : mai 2011
Messages : 13
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 13
Points : 10
Points : 10
Bonjour,
j'ai essayé mais ça ne fonctionne pas (erreur:"pg_restore: [archiveur] version non supportée (1.12) dans le fichier d'en-tête")
Je ne sais pas si c'est un problème de version de pg ou un bug lié à la taille de la table.
Le fichier déployé (taille du repertoire pg) est de l'ordre de 30Go. Le backup généré est d'environ 10Go.
FMIMF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 10h38   #4
estofilo
Modérateur
 
Inscription : octobre 2008
Messages : 1 702
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 702
Points : 2 347
Points : 2 347
Citation:
Envoyé par FMIMF Voir le message
j'ai essayé mais ça ne fonctionne pas (erreur:"pg_restore: [archiveur] version non supportée (1.12) dans le fichier d'en-tête")
Cette erreur implique en principe que le pg_dump ayant fait le backup est plus récent que le pg_restore. Ca serait logique si tu faisais une descente de version mais si c'est l'inverse (8.3->8.4), ça ne devrait pas arriver.

Les solutions
- faire le backup avec le pg_dump de la 8.3 et la restauration avec pg_restore de la 8.4
- faire le backup avec le pg_dump de la 8.4 et la restauration avec pg_restore de la 8.4
- faire le backup en fichier SQL (pg_dump sans l'option -Fc) et dans ce cas pg_restore n'est pas nécessaire, le fichier produit peut être directement fourni à psql sur la base cible.

EDIT: numéros de versions
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h17.


 
 
 
 
Partenaires

Hébergement Web