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 30/01/2015 19:37:52

guk92
Membre

Fail-over & choix d'un mode de réplication pour un projet d'étude Java

Bonjour,



Dans le cadre d'un projet d'étude, moi et mes camarades devons mettre en place un cluster de bases PostgreSQL et assurer la réplication.


Voici notre architecture :
* 3 machine contenant chacun un projet web en Java et utilisant JDBC (ou un JDBC ré-écrit par nos soins) pour assurer la communication avec une machine du Cluster PostgreSQL.
* 3 machines avec uniquement PostgreSQL installé dans chacun.


Nous n'avons bien sur pas le droit d'utiliser des librairies existantes comme HA-JDBC.


Nous avons bien sur lu la documentation :
https://wiki.postgresql.org/wiki/Replic … on_Pooling
http://docs.postgresqlfr.org/9.3/high-availability.html
... mais nous souhaiterions tout de même nous assurer d'être sûr le bon chemin et ne pas perdre de temps en revenant en arrière.




Voici donc notre série de questions :
1. En partant du principe que notre machine Master peut mourir à tout moment, quelle moyen de réplication nous conseillez-vous d'utiliser pour assurer la réplication ? Est-ce qu'une réplication en mode Master-Master devient obligatoire pour notre cas ?


2. Est-ce que PostgreSQL gère de base la réplication via des fichiers de configurations, ou faut-t-il obligatoirement effectuer une installation supplémentaire pour obtenir "pgPool-II", "Bucardo" etc. ? En effet dans la documentation on parle de serveur StandBy ( http://docs.postgresqlfr.org/9.3/warm-standby.html ) mais est-ce suffisant ? Que nous conseillez-vous de configurer ou installer ?


3. D'après ce lien : http://www.postgresql.org/message-id/51 … ujitsu.com , il est possible d'assurer le fail-over en indiquant plusieurs urls dans JDBC comme ceci :

String connectionString = "jdbc:postgresql://pgsqldc1:5432,pgsqldc2:5432/test";

3.a. Est-ce que cette solution est envisageable pour notre cas sachant qu'on active la réplication ?
3.b. Est-ce que cette solution est envisageable pour notre cas sachant qu'on souhaite utiliser un pool de connexion Java (type C3P0, BoneCP, HikariCP) avec un DataSource au lieu du DriverManager ?


4. Si au cours de notre étude nous ne pouvons pas utiliser le mode Master-Master pour une quelconque raison, comment faire pour savoir si une instance du Cluster est Master ou Slave ? Est-ce que l'appel de la fonction pg_is_in_recovery() au niveau de notre programme Java est concevable ? Ou bien existe-t-il une meilleure solution ?



Je vous remercie par avance pour votre aide, cordialement,

Hors ligne

#2 31/01/2015 01:08:45

gleu
Administrateur

Re : Fail-over & choix d'un mode de réplication pour un projet d'étude Java

1. Rien ne dit qu'il faut une solution maître/maître.

2. Pas besoin d'installation supplémentaire.

3. Jamais utilisé java, donc je ne me prononcerai pas.

4. De toute façon, rien n'indique dans ce que vous marquez que le maître/maître est imposé ici. La fonction pg_is_in_recovery() doit convenir.


Guillaume.

Hors ligne

Pied de page des forums