Vous n'êtes pas identifié(e).
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
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.
Julien.
https://rjuju.github.io/
Hors ligne
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
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.
Julien.
https://rjuju.github.io/
Hors ligne
Salut,
l'ex-admin ayant abondonne l'informatique pour faire les soins infirmiers , 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
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.
Julien.
https://rjuju.github.io/
Hors ligne
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
C'est tout à fait faisable.
Les problèmes qui peuvent se poser sont ceux indiqués dans la doc sur les changements de version :
Julien.
https://rjuju.github.io/
Hors ligne
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
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.
Julien.
https://rjuju.github.io/
Hors ligne
salut,
merci pour la réponse, mais il me semble que tu n'as pas bien lu ce que j'ai ecrit.
Hors ligne
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