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 24/04/2017 13:25:40

romaric
Membre

replication avec pgpool2

Bonjour
j'ai mis en place une réplication avec pgpool2 donc mon architecture est la suivante:
-une machine cliente
-une machine qui contient pgpool2
- 2 machines serveur postgres version 9.5
le système d'exploitation est le même sur toutes les machine (ubuntu 16.04).
Les deux machines serveurs postgres ont été configuré en master/master.

lorsque je fait un enregistrement des données à travers la machine cliente en passant par la machine qui contient pgpool2 les données sont inseré et répliqué dans les deux serveur.

Lorsque je simule un problème sur le serveur postgres 2 (celui qui a le hostname1 dans le fichier pgpool.conf) en arrêtant les service de postgresql et j'effectue une insertion des données sur la machine cliente en passant toujours par la machine qui contient pgpool2 elle me signale que une machine à des problèmes et effectue l'insertion dans la machine  serveur1 .

Mais lorsque je simule la réparation du serveur2 en redémarrant les service de postgresql le serveur est opérationnelle mais les données se trouvant dans l'instance de BD du serveur2 ne sont plus cohérent avec celles de l'instance du serveur1.

Lorsque j'effectue encore une autre insertion des données à ce moment , les données sont insérées uniquement dans l'instance de machine serveur1 . la réplication n'est plus effective sur ces deux instances de BD.       j'aimerais savoir le pourquoi?

J'ai donc supposé que un tel comportement était du au fait que les deux l'instance de BD ne sont plus cohérente du coup j'ai effectué une sauvegarde de l'instance du serveur1 et j'ai fait la restauration de l'instance du serveur2, pour rendre les données des deux instances cohérentes, puis j'ai effectué encore une nouvelle insertion et l 'insertion s'est effectuée dans le serveur1 mais toujours pas de réplication dans le serveur2.

J'aimerais avoir une solution pour que la réplication s'applique encore sur les deux instance des serveurs.



Dans un autre cas:

Lorsque je simule un problème sur le serveur1 (celui qui a le hostname0 dans le fichier pgpool.conf) en arrêtant les service de postgresql et j'effectue une insertion des données sur la machine cliente en passant toujours par la machine qui contient pgpool2 elle me signale que une machine à des problèmes et aucune l'insertion n'est insérée.  la machine serveur 1 étant en panne bloque toutes transactions dans les autres machine serveur.
comment remédié aussi à ce problème.

Hors ligne

#2 24/04/2017 13:40:36

gleu
Administrateur

Re : replication avec pgpool2

Je n'ai qu'un conseil : oubliez pgpool2 pour la réplication. Je sais que ce n'était pas votre question à la base mais je pense qu'il serait plus rapide de passer par une autre question : pourquoi utilisez-vous pgpool2 ?

Hors ligne

#3 24/04/2017 13:51:36

romaric
Membre

Re : replication avec pgpool2

j'ai voulu mettre un système de cluster comme le RAC chez oracle.
j'ai lu dans des document que pgpool dupliquait les requêtes des clients. donc j'ai voulu monté un tel système

Hors ligne

#4 24/04/2017 13:57:22

gleu
Administrateur

Re : replication avec pgpool2

Dupliquer les requêtes, ce n'est pas du tout la même chose que dupliquer les données. Imaginez que pour une table sur laquelle vous faites une insertion, une colonne récupère une valeur par défaut, comme la valeur de now() (donc date et heure au moment du traitement). Paf, dans 99% des cas, vous aurez des valeurs différentes, de quelques millisecondes probablement, mais différentes (et si les deux serveurs sont vraiment désynchronisés au niveau horloge, ce sera bien pire évidemment).

De toute façon, ce n'est pas un remplacement complet de RAC. Vous avez deux répertoires de données, et pas un seul comme avec RAC.

Hors ligne

#5 24/04/2017 13:59:18

ruizsebastien
Membre

Re : replication avec pgpool2

bonjour,

J'ai essayé pgpool2, je n'ai pas trop aimé car trop usine à gaz et pas assez stable pendant mes tests de crash.
Quoi qu'il en soit si vous voulez absolument l'utiliser je vous conseil de partir sur le mode master/slave en laissant postgresql gérer la réplication (en streaming).
Sinon un petit tour du côté de PAF (postgresql automatic failover), c'est beaucoup mieux.

Hors ligne

#6 24/04/2017 14:12:40

romaric
Membre

Re : replication avec pgpool2

Merci pour vos solutions.
je vais configurer la réplication en streaming master/slave.

svp n'y a t-il pas un outil pour implémenter le RAC sous postgresql.

Hors ligne

#7 24/04/2017 14:19:36

ruizsebastien
Membre

Re : replication avec pgpool2

helas non, pas à ma connaissance.

Hors ligne

#8 24/04/2017 14:23:15

gleu
Administrateur

Re : replication avec pgpool2

Non, vu l'implémentation de PostgreSQL, ça n'existe pas et ça ne peut pas exister. Il faudrait un changement radical dans la conception de PostgreSQL pour le permettre.

Hors ligne

#9 24/04/2017 15:17:25

romaric
Membre

Re : replication avec pgpool2

ok
merci pour tous vos conseils

Hors ligne

Pied de page des forums