Vous n'êtes pas identifié(e).
Bonjour,
comment puis-je récupérer une base sur un serveur en 9.0.3 pour la recopier sur une base en 8.2.11.
Merci.
Hors ligne
copié une database d'un 9.0.3 vers un 8.2.11 c'est pas un peu dangereux ?
sinon un simple pgdump devrait bien faire l'affaire.
Hors ligne
Avec un pg_dump de 8.2 ceci dit. Il faudra certainement utiliser l'option -i pour que ça fonctionne. Tous les objets spécifiques aux versions 8.3 et ultérieures ne seront pas pris dans la sauvegarde mais comme ils ne sont pas restaurables sur une 8.2, ça n'est pas grave en soi
Guillaume.
Hors ligne
Bonjour et merci pour vos réponses. Pour info, je suis sur Windows.
J'ai effectivement essayé depuis le serveur en Version 8 de faire un pg_dump avec l'option -i mais ça ne fonctionne pas.
pg_dump.exe -i -h serveuren9 -p 5432 -U postgres -f fichier.backup <nomdelabase>
pg_dump: server version: 9.0.3; pg_dump version: 8.2.11
pg_dump: proceeding despite version mismatch
pg_dump: SQL command failed
pg_dump: Error message from server: ERREUR: la colonne « reltriggers » n'exis
te pas
LINE 1: ...oles WHERE oid = relowner) as rolname, relchecks, reltrigger...
^
pg_dump: The command was: SELECT c.tableoid, c.oid, relname, relacl, relkind, re
lnamespace, (SELECT rolname FROM pg_catalog.pg_roles WHERE oid = relowner) as ro
lname, relchecks, reltriggers, relhasindex, relhasrules, relhasoids, d.refobjid
as owning_tab, d.refobjsubid as owning_col, (SELECT spcname FROM pg_tablespace t
WHERE t.oid = c.reltablespace) AS reltablespace, array_to_string(c.reloptions,
', ') as reloptions from pg_class c left join pg_depend d on (c.relkind = 'S' an
d d.classid = c.tableoid and d.objid = c.oid and d.objsubid = 0 and d.refclassid
= c.tableoid and d.deptype = 'a') where relkind in ('r', 'S', 'v', 'c') order b
y c.oid
Hors ligne
Yep, c'était un problème auquel j'aurais dû penser. Il n'existe donc pas trop de solutions, à part utiliser le pg_dump de la 9.0, qui ne se restaurera pas facilement sur un 8.2. Sauvegarde texte obligatoire car il y a de fortes chances qu'il faille modifier certaines requêtes. Bon courage pour la suite :-/
Guillaume.
Hors ligne
Bon, je vous dirai comment je vais réussir à m'en sortir (suis optimiste)...
Sinon, pour la suite, que me conseilleriez-vous pour migrer mes clusters de bases sur mon serveur windows avec postgres 8.2 vers postgres 9.0.3. pgupgrade ou autres...???
Merci.
Hors ligne
Si c'est pour aller de la 8.2 vers la 9.0, ça doit être bien plus simple. Vous utilisez le pg_dump de la version 9.0, qui devrait pouvoir sauvegarder une base de 8.2. Et ensuite le pg_restore de la 9.0. C'est l'autre sens qui est complexe.
Guillaume.
Hors ligne
il est toujours possible de se baser sur sur un système de réplication comme slony pour migrer entre versions, dans les deux sens.
Cédric Villemain +33 (0)6 20 30 22 52
http://2ndQuadrant.fr/
PostgreSQL: Support 24x7 - Développement, Expertise et Formation
Hors ligne
Je m'en suis sortie en ne faisant un export que du schéma à récupérer en mode plain, et j'ai récupéré sur mon serveur de destination en postgresql 8.2 par la commande suivante :
psql.exe -f "mon-fichier-export-en-mode-plain-postgre9.sql" -p <port> -h localhost <labase-destination> <le-user>
Merci à tous.
Chrystèle.
Hors ligne