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

#1 02/10/2012 09:31:33

jhashe
Membre

pg_upgrade et tablespace

Bonjour,

J'ai une base en production sous PosgreSQL 9.0 que j'envisage migrer prochainement. Pour cela, je pensais utiliser pg_upgrade. Mais, parmi ses paramètres, il attend le chemin des anciennes données et des nouvelles. Ce paramétrage simple fonctionne correctement lorsque toutes les données sont regroupées au même endroit; mais ma base est répartie via des tablespaces sur plusieurs disques.
Quelle est dans ce cas la méthode à suivre ?

Hors ligne

#2 03/10/2012 08:49:01

gleu
Administrateur

Re : pg_upgrade et tablespace

C'est le répertoire principal qu'il faut donner. Il trouvera de lui-même les tablespaces.


Guillaume.

Hors ligne

#3 03/10/2012 10:15:36

jhashe
Membre

Re : pg_upgrade et tablespace

Merci pour la réponse.
Je sais que c'est le répertoire principal qu'il faut donner. Mais ma question concerne la migration des données n'étant pas dans ce répertoire principal.
Pour prendre un exemple concret, mon répertoire principal actuel est "/disk2/pgsql/9.0/data", mais j'utilise 2 autres tablespace qui ont pour emplacements /disk3/pgsql/9.0/data et /disk4/pgsql/9.0/data

La logique , telle que j'ai comprise,  est d'appeler pg_upgrade avec les paramètres --old-datadir=/disk2/pgsql/9.0/data et --new-datadir=/disk2/pgsql/9.2/data. Et j'aurais bien les données migrée du répertoire principal dans /disk2/pgsql/9.2/data. Mais que ce passera-t-il pour les 2 autres répertoires ? Va-t-il migrer les données de /disk3/pgsql/9.0/data, m'empêchant ainsi tout downgrade ultérieur ? Va-t-il échouer en considérant que le répertoire n'est pas vide et contient des données d'une version incompatible ?

Dans l'esprit, il semblerait logique de vouloir dire que les données de /disk3/pgsql/9.0/data seront migrées dans /disk3/pgsql/9.2/data et celles de /disk4/pgsql/9.0/data dans /disk4/pgsql/9.2/data. Mais, si j'ai compris la doc, pg_upgrade ne permet pas cela. C'est même encore plus simple, la problématique des tablespaces n'est pas évoquée dans le manuel de pg_upgrade, d'où ma question.

Hors ligne

#4 03/10/2012 14:37:03

gleu
Administrateur

Re : pg_upgrade et tablespace

Mais que ce passera-t-il pour les 2 autres répertoires ? Va-t-il migrer les données de /disk3/pgsql/9.0/data, m'empêchant ainsi tout downgrade ultérieur ?

Il va migrer les données, mais sans tout mélanger. En fait, dans le répertoire de votre tablespace, il existe un sous-répertoire où tout est stocké (du style PG_9.1_201105231). Il va donc créer un autre sous-répertoire où les nouveaux fichiers seront stockées.

Pour éviter tout problème de downgrade, vous devez passer par l'option de copie et non pas l'option de lien.

Va-t-il échouer en considérant que le répertoire n'est pas vide et contient des données d'une version incompatible ?

C'était un soucis sur les anciennes versions et ça a été vite corrigé. Entre une 9.1 et une 9.2, pas de soucis.


Guillaume.

Hors ligne

#5 03/10/2012 14:53:33

jhashe
Membre

Re : pg_upgrade et tablespace

Ok, super !
Il y a bien le sous-répertoire évoqué ici; c'est une très bonne nouvelle :-)
C'est dommage que le manuel de pg_upgrade ne le dise pas.
En tous cas, merci beaucoup pour cette information oh combien rassurante.
PS: et j'avais bien exclus, malgré les gains de temps énormes, l'option des liens. Trop dangereux !

Hors ligne

Pied de page des forums