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 02/02/2012 18:13:22

baradji
Membre

installation de postgresql-8.4 sur un nouveau serveur linux

Bonjour,
on souhaite faire une migration de la base installée sur un serveur A linux vers un serveur B linux(ne contenant pas d'installation postgresql) en ligne de commande.
Je cherche la meilleur procédure pour cela.
merci pour vos conseils

Hors ligne

#2 02/02/2012 18:58:49

rjuju
Administrateur

Re : installation de postgresql-8.4 sur un nouveau serveur linux

Bonjour.

Si l'architecture des 2 serveurs est identique, le plus simple est d'installer la même version de postgres sur le nouveau serveur de la même façon que cela a été fait sur l'ancien, d'arrêter l'instance proprement sur l'ancien serveur puis de copier le répertoire data sur le nouveau serveur.
Vous pourrez alors démarrer le nouveau serveur.

Hors ligne

#3 02/02/2012 22:04:10

baradji
Membre

Re : installation de postgresql-8.4 sur un nouveau serveur linux

Salut, merci pour ta reponse.
j'ai deux preocupations.
la 1e:
l'ex-admin de la bd me demande de faire  la migration avec rsync.
est ce que tu as une procedure avec ceci?

la 2e: sur le serveur A, j'ai dans /var/lib/postgresql/8.4/  deux sous-repertoires:
- main
- abc20
or dans le fichier /etc/postgresql/8.4/main/postgresql.conf, j'ai la ligne
data_directory = '/var/lib/postgresql/8.4/main'
pour m'indiquer le repertoire data, alors que dans le repertoire abc20, j'ai des sous-rep avec des repertoires abc20-data et global.
je me demande quel est le vrai repertoire data

Hors ligne

#4 02/02/2012 22:41:21

rjuju
Administrateur

Re : installation de postgresql-8.4 sur un nouveau serveur linux

rsync est un outil qui sert surtout à faire de la sauvegarde incrémentale. Sauf contraintes spécifiques (par exemple grosse volumétrie de donnée de necessité de couper la base le moins longtemps possible), je ne pense pas que cela apporte en performance.
La syntaxe de base de rsync est "rsync -a /repertoire/source /repertoire/cible". Il y a de nombreuses pages d'aide et de documentation de cet outil sur internet qui expliquent toutes les fonctionnalités. Il faudra cependant utiliser un partage nfs entre les 2 serveurs pour pouvoir copier les données je pense.

Pour le 2ème point, il faut voir dans votre script de lancement de postgres quel est le répertoire de donnée indiqué. Ce script est spécifique à votre distribution linux. Pour debian/ubuntu, c'est dans /etc/init.d/

Si votre ex-admin est toujours là, il pourra sans doute mieux vous aider que moi.

Hors ligne

#5 06/02/2012 21:26:59

baradji
Membre

Re : installation de postgresql-8.4 sur un nouveau serveur linux

Salut,
l'ex-admin ayant abondonne l'informatique pour faire les soins infirmiers smile , il n'a plus le temps.

bien, voici ce que j'ai fait.
Jai installer postgresql sur le nouveau serveur via RPM(utilisant redhat - centos), et les fichiers postgresql se trouve dans le répertoire /opt/postgresql.
alors que sur l'encien serveur(ubuntu), les fichiers postgresql se trouve dans le repertoire /etc/postgresql et /var/lib/postgresql.
j'ai vu de la documentation sur internet(http://www.howtoforge.com/how-to-easily-migrate-a-postgresql-server-with-minimal-downtime), mais il utilise la migration avec les mêmes répertoires.
aussi les deux serveurs ne sont pas sur le même réseau(ancien: 10.0.2.4 adresse privée, et le nouveau sur 64.xx.xx.xx adresse publique)

mes questions sont:
1) est ce qu'il est possible d'installer postgresql sur le nouveau serveur redhat dans les même répertoire /etc/postgresql/ ?
2) comment pourrais je faire un rsync sur deux machines qui ne peuvent pas communiquer dans les 2 sens?

Hors ligne

#6 06/02/2012 21:36:45

rjuju
Administrateur

Re : installation de postgresql-8.4 sur un nouveau serveur linux

1) C'est possible mais pas du tout conseillé je pense.

2) S'il n'est pas possible de faire une copie brute des fichiers ou de faire un partage entre les 2 machines, vous pouvez toujours faire un pg_dump de l'ancien serveur et ensuite faire un pg_restore sur le nouveau serveur.

Hors ligne

#7 07/02/2012 17:04:24

baradji
Membre

Re : installation de postgresql-8.4 sur un nouveau serveur linux

Salut Rjuju,
Merci pour tes réponses,
J'avais pensé a cette solution, et surtout vu qu'on va utiliser un nouveau serveur, je me dit pourquoi ne pas installer la dernière version de postgresql.
mais ma préoccupation est la suivante:
- si j'installe la postgresql 9.1 sur le nouveau serveur et récupère les données sur le serveur postgresql 8.4 via pg_dump de PgAdmin, et ensuite restore sur le nouveau serveur,
est ce c'est faisable?
quels sont les problèmes qui peuvent se poser?

Hors ligne

#8 07/02/2012 18:39:00

rjuju
Administrateur

Re : installation de postgresql-8.4 sur un nouveau serveur linux

C'est tout à fait faisable.
Les problèmes qui peuvent se poser sont ceux indiqués dans la doc sur les changements de version :

http://wiki.postgresql.org/wiki/What%27 … ade_Issues

http://wiki.postgresql.org/wiki/What%27 … ity_issues

Hors ligne

#9 09/02/2012 22:10:38

baradji
Membre

Re : installation de postgresql-8.4 sur un nouveau serveur linux

Salut,
Une question qui me tracasse la tête:
1) est ce qu'on besoin d'installer d'abord postgresql forcement sur un nouveau serveur avant de faire rsync?
je me dis, si je copie par rsync tous les répertoires liés a postgresql de l’ancien serveur vers le nouveau serveur en ayant les mêmes nom de répertoire peut-il etre considérer comme une install?

2) sur l’ancien serveur se trouve le repertoire /postgres_db contenant les repertoires des tablespce(
ex: CREATE TABLESPACE tc_mmdata
  OWNER tc1
  LOCATION '/postgres_db/pg-8.4/tc1/mm_data';
),
et aussi dans le fichier postgresql.conf, on a data_directory = '/postgres_db/pg-8.4/main'
ma question est :est ce qu'il faut d'abord copier toutes ces donnees par rsync sur le nouveau serveur avant de faire un pg_dumpall sur l'encien serveur et le restorer dans le nouveau?

merci

Hors ligne

#10 09/02/2012 22:46:20

rjuju
Administrateur

Re : installation de postgresql-8.4 sur un nouveau serveur linux

Vous pouvez  faire un rsync ou un pg_dump puis pg_restore, mais pas les 2.

Si vous voulez changer de version, seul le pg_dump est envisageable, et nécessite l'installation du nouveau postgres pour pouvoir faire un pg_restore.

Hors ligne

#11 09/02/2012 23:19:40

baradji
Membre

Re : installation de postgresql-8.4 sur un nouveau serveur linux

salut,
merci pour la réponse, mais il me semble que tu n'as pas bien lu ce que j'ai ecrit.

Hors ligne

#12 09/02/2012 23:30:10

gleu
Administrateur

Re : installation de postgresql-8.4 sur un nouveau serveur linux

est ce qu'on besoin d'installer d'abord postgresql forcement sur un nouveau serveur avant de faire rsync?

Non.

je me dis, si je copie par rsync tous les répertoires liés a postgresql de l’ancien serveur vers le nouveau serveur en ayant les mêmes nom de répertoire peut-il etre considérer comme une install?

Tout dépend si les répertoires liés à PostgreSQL incluent les exécutables et les données. Sinon non.

est ce qu'il faut d'abord copier toutes ces donnees par rsync sur le nouveau serveur avant de faire un pg_dumpall sur l'encien serveur et le restorer dans le nouveau?

Non.


Guillaume.

Hors ligne

Pied de page des forums