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/08/2016 14:47:29

laurentD
Membre

Slony - réplication à la demande

J'ai deux bases de données, l'une "master" qui est la base de données maître et la seconde "slave" qui est la base de données esclaves. Une réplication Slony est mise en place et fonctionne en continu.
Slony a été choisi pour la possibilité de répliquer seulement une partie de la base.
J'aimerai pouvoir lancer la réplication à la demande. En effet, la base master sert de préproduction à une application et le contenu est "tuné" par des utilisateurs qui décident à un moment donné d'envoyer la bonne version des données en production. A ce moment la réplication doit être enclenchée. La base de données "slave" est donc celle de production.

Ceci a déjà été réalisé il y a de nombreuses années avec des bases de données Sybase et la réplication à la demande y existe avec l'outil SQL Remote qui marche à merveille.

Ici nous devons passer en PostgreSQL et la pierre d'achoppement est cette réplication à la demande.

Les deux bases de données PG se trouvent sur le même serveur. Comme dit ci-dessus la réplication dans l'absolu fonctionne. Le souci d'avoir uen réplication à la demande n'est pas de lancer les deux processus slon mais de les arrêter au bon moment...

J'ai vu qu'il y avait des switches à la commande slon comme -q et -r

Extrait de la doc:
-q quit based on SYNC provider quit_sync_provider indicates which provider’s worker thread should be watched
in order to terminate after a certain event. This must be used in conjunction with the -r option below...
This allows you to have a slon stop replicating after a certain point.
-r quit at event number quit_sync_finalsync indicates the event number after which the remote worker thread
for the provider above should terminate. This must be used in conjunction with the -q option above...

J'ai donc considéré de regarder la valeur max de ev_seqno dans sl_event pour le node 1 (master) et de le passer en paramètre "r" de slon sur le slave. Pour le switch q j'ai repris le pid du slon master. Tout se lance, la synchro fonctionne mais le slon slave ne stoppe pas après l'event indiqué... j'ai tenté de mettre autre chose pour la valeur de q mais alors le process slon slave redémarre toutes les 10 secondes.

Quelqu'un a-t-il une expérience avec ces switches?

Existe-t-il une autre solution pour de la réplication à la demande sous PostgreSQL?

Merci à tous à l'avance.

Dernière modification par laurentD (22/08/2016 14:50:29)

Hors ligne

#2 31/08/2016 11:35:42

kenrio
Membre

Re : Slony - réplication à la demande

pkoi pas stopper la repli tout simplement et la relancer quand c'est bon ?

Hors ligne

#3 31/08/2016 12:24:12

laurentD
Membre

Re : Slony - réplication à la demande

Merci de ta réponse.
Oui, mais c'est un peu brutal et on n'a jamais la certitude que tout ce qui devait être répliqué l'a été. C'est pour cela que ce serait mieux si slony avait la capacité de s'arrêter sur un évènement donné mais apparemment cela ne fonctionne pas.

Hors ligne

#4 31/08/2016 14:02:47

kenrio
Membre

Re : Slony - réplication à la demande

bah pendant l'arrêt le nombre d'event va monter des que vous allez redémarrer tous les events retomberont a 1 ou 2 quand ils aura terminé.
En fait c'est pas du tout brutal comme façon, perso je coupe mes slons très souvent ( tous les jours pour les backups ) et j'ai jamais eu de soucis.

Hors ligne

#5 31/08/2016 14:51:21

gleu
Administrateur

Re : Slony - réplication à la demande

Couper les slons ne fait que couper la communication entre le maître et les esclaves. Cela n'empêche pas le log des événements sur le maître. Il ne vous manquera rien. Bref, d'accord avec kenrio, il suffit de stopper les slons.


Guillaume.

Hors ligne

#6 31/08/2016 14:52:46

kenrio
Membre

Re : Slony - réplication à la demande

/HS coucou Gleu ça faisait longtemps smile

Hors ligne

#7 31/08/2016 15:02:59

laurentD
Membre

Re : Slony - réplication à la demande

Merci à tous. Ok j'utiliserai la solution brutale "douce " wink

Cependant ayant connu SQL Remote de Sybase, là cela se faisait tout seul. Ma seule inquiétude est qu'une partie des données ne se retouve pas sur l'esclave si on termine trop tôt le slon. Ce pourquoi je regardais du coûé des options -q et -r mais cela ne fonctionne pas.

Hors ligne

#8 31/08/2016 15:19:31

kenrio
Membre

Re : Slony - réplication à la demande

en codant un peu y a moyen de faire une verif que les derniers events ne sont que des SYNC de base et non des mises à jour, après on peut aussi vérifier que les logs sont vide, etc,... enfin y a pleins de techniques possible en fait ^^

Hors ligne

#9 31/08/2016 15:22:37

laurentD
Membre

Re : Slony - réplication à la demande

Ok, je vais aller voir donc du côté des tables des events. Quand tu parles de vérifier les logs sont vides c'est également au traversd es tables de Slony?

Hors ligne

#10 31/08/2016 15:40:57

kenrio
Membre

Re : Slony - réplication à la demande

oui, ça peut se faire avec les logs fichiers mais bon les scripts a faire sont bien plus galère.
après rien que la vue status fera l'affaire à mon avis.

Hors ligne

#11 31/08/2016 16:35:30

laurentD
Membre

Re : Slony - réplication à la demande

Ok, je te remercie.

Hors ligne

#12 25/10/2016 16:11:29

laurentD
Membre

Re : Slony - réplication à la demande

Je ne retrouve pas  cette vue dans la doc. Peux-tu me donner son nom précis stp?

Merci

Hors ligne

#13 25/10/2016 16:18:20

laurentD
Membre

Re : Slony - réplication à la demande

sl_status, désolé je ne dois pas être bien réveillé...

Hors ligne

Pied de page des forums