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 22/10/2009 18:46:01

jhashe
Membre

Bucardo - Réplication Maitre-Maitre et modifications de schéma

Bonjour,

Nous utilisons avec bonheur PostgreSQL dans un environnement WEB depuis 7 ans.
Nos applications et le volume de données hébergé a fortement augmenté depuis le début. Aujourd'hui, nous gérons environ 20 millions de requêtes WEB par jour (mais pas autant de requêtes SQL bien sûr).

Nous utilisons notamment de plus en plus le moteur Tsearch, mais les performances de notre infrastructure (une ferme de serveurs WEB, mais un seul serveur PostgreSQL) commencent à s'en ressentir. J'aimerais donc répartir la charge sur plusieurs serveurs (modifications -nombreuses- et lectures).

Je m'intéresse pour cela à Bucardo qui semble assez simple à mettre en place, avec des contraintes assez faibles, et qui semble répondre à nos besoins. Je me pose cependant une question à laquelle je n'ai pas trouvé de réponses sur Internet: une fois la réplication configurée et active, comment se passent les modifications de schéma (ajout/modification de tables, de vues, d'index...). Peut-on les répliquer automatiquement, ou doit-t-on les appliquer manuellement sur les 2 instances.

J'ajoute une autre question. Lorsqu'une instance s'arrête (par exemple pour une maintenance serveur), la synchronisation peut-elle ensuite reprendre automatiquement (ie la mise à jour des données du serveur "vivant" vers l'autre)

Par avance, merci pour vos points de vue

Jérôme

Hors ligne

#2 22/10/2009 19:16:05

gleu
Administrateur

Re : Bucardo - Réplication Maitre-Maitre et modifications de schéma

Peut-on les répliquer automatiquement, ou doit-t-on les appliquer manuellement sur les 2 instances.

Il faut les appliquer sur les deux.

Lorsqu'une instance s'arrête (par exemple pour une maintenance serveur), la synchronisation peut-elle ensuite reprendre automatiquement (ie la mise à jour des données du serveur "vivant" vers l'autre)

À ma connaissance, oui.

Pour aller un peu plus loin... Si vous utilisez Bucardo en maître/maître, vous vous bloquez à deux serveurs maximum. Par contre, en maître/esclave, vous pouvez en avoir plus. Mon seul réel soucis actuellement avec Bucardo, c'est qu'il est dans une phase de développement intense actuellement. Comprenez-moi bien, c'est très bon signe sur l'implication des (du ?) développeurs et sur leur volonté d'améliorer leur outil. Par contre, ça laisse supposer que la solution est loin d'être finale.


Guillaume.

Hors ligne

#3 23/10/2009 11:18:26

jhashe
Membre

Re : Bucardo - Réplication Maitre-Maitre et modifications de schéma

Bonjour,

Merci beaucoup pour votre réponse. Je constate en effet le développement rapide de Bucardo. Par exemple, dans vos news du 18/10, vous citez la mise à disposition de la version 4.3 de cet outil, mais, quand on suit le lien, le site parle de la version 4.4.

Je poursuis donc ma réflexion en m'orientant désormais vers une réplication maitre/esclaves qui permet effectivement une plus grande scalabilité (plusieurs esclaves). Dans votre excellente série d'articles parue dans le HS de Linux Mag, vous en évoquez plusieurs. Par contre, vous ne parlez pas de Rubyrep. Cette solution, évoquée dans le wiki PostgreSQL (http://wiki.postgresql.org/wiki/Replica … on_Pooling) semble particulièrement facile à mettre en oeuvre et il y est indiqué qu'elle peut automatiquement prendre en compte les tables nouvellement crées. Si tel est réellement le cas, cela me semble un avantage certain. En effet, devoir manuellement effectuer les changement de schéma sur l'ensemble des serveurs présente une faiblesse de la plupart des outils existants; il est en effet "facile" d'omettre une modification, ce qui aura pour conséquence évidente la non total réplication des données.

Quelqu'un aurait-il des retours sur la solution rubyrep ?

Hors ligne

#4 23/10/2009 15:39:37

gleu
Administrateur

Re : Bucardo - Réplication Maitre-Maitre et modifications de schéma

La 4.3 apparaît le 08/10/2009 18:06 et la 4.4 le 14/10/2009 19:06. Six jours. C'est peu smile

Par contre, vous ne parlez pas de Rubyrep.

Je voulais en parler mais le gros soucis a été le manque de place. Un HS linux mag (comme un numéro normal) a un nombre de page max fixe (80, + ou - 2 ou 3, je pense). Mais il est possible que j'écrive un article sur cet outil plus ou moins rapidement.

Quelqu'un aurait-il des retours sur la solution rubyrep ?

Peu de retours sur rubyrep. Il est à mon avis peu utilisé. Le choix du langage (ruby) y est certainement pour quelque chose. Mais en effet, sa détection automatique des ajouts de table est intéressant. Cependant, c'est assez simple à faire, même pour d'autres outils de réplication. Il suffit d'un démon qui compare les structures des deux bases, et fait la synchronisation (ceci dit, il est toujours mieux d'utiliser une fonctionnalité déjà développée).


Guillaume.

Hors ligne

#5 23/10/2009 15:58:27

jhashe
Membre

Re : Bucardo - Réplication Maitre-Maitre et modifications de schéma

Mais en effet, sa détection automatique des ajouts de table est intéressant. Cependant, c'est assez simple à faire, même pour d'autres outils de réplication. Il suffit d'un démon qui compare les structures des deux bases, et fait la synchronisation (ceci dit, il est toujours mieux d'utiliser une fonctionnalité déjà développée).

Votre article sur Londiste m'a donné des idées à ce sujet. Vous expliquez comment recopier le schéma de la base maitre vers la base esclave (je n'ai pas l'article sous les yeux, mais je me souviens que le principe global s'appuie sur pg_dump -s). En sauvegardant le résultat dans un fichier d'une fois sur l'autre, il est facile de détecter tout changement de schéma. En cas d'ajout de tables, si ma mémoire est bonne, on peut rappeler la commande de réplication pour toutes les tables. Dans ce cas, si j'ai bien compris, l'outil va ignorer cette requête pour les tables déjà répliquées. Le tour est donc joué, simplement !
Mais, bien entendu, un changement de schéma ne se résume pas à un ajout de tables. Et pour tous les autres cas, je n'ai pas vraiment d'idées.

Hors ligne

#6 23/10/2009 16:26:55

gleu
Administrateur

Re : Bucardo - Réplication Maitre-Maitre et modifications de schéma

check_postgres permet d'en savoir beaucoup plus. Il dispose d'une action qui compare les schémas des deux bases et indique les différences pour tous les objets.


Guillaume.

Hors ligne

#7 23/10/2009 18:13:14

jhashe
Membre

Re : Bucardo - Réplication Maitre-Maitre et modifications de schéma

check_postgres permet d'en savoir beaucoup plus. Il dispose d'une action qui compare les schémas des deux bases et indique les différences pour tous les objets

Merci beaucoup !
Je ne connaissais pas cet outil. Dommage qu'il ne réalise pas lui-même les opérations nécessaires sur les esclaves pour resynchroniser les schémas. Cela devrait cependant m'être d'une aide précieuse.

Encore merci !

Hors ligne

#8 23/10/2009 18:22:28

gleu
Administrateur

Re : Bucardo - Réplication Maitre-Maitre et modifications de schéma

C'est un outil de récupération d'informations. Donc c'est logique qu'il n'aille pas plus loin. Par contre, à partir de son code source, il devrait être possible de faire ce que vous indiquer. Ce serait même un projet (libre smile ) très intéressant.


Guillaume.

Hors ligne

Pied de page des forums