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.