====== Nouveauté pour repmgr : Fail-Over automatique ====== [[http://repmgr.org/|repmgr]] est un outil pour mettre en place et administrer la réplication intégrée dans PostgreSQL à partir de la version 9.0 Il s'utilise très simplement en ligne de commande. //repmgr// permet de: * cloner un serveur Primaire pour en faire un serveur Standby * basculer le serveur Primaire sur un standby et réaffecter le serveur Primaire pour les autres Standby (oui, oui, si vous avez plusieurs Standby la réplication n'a pas besoin d'être réinitialisée) Et il y aussi //repmgrd// qui permet de vérifier le bon déroulement de la réplication. C'est un démon qui insère une nouvelle ligne sur le Primaire à intervalle régulier, depuis chaque serveur Standby. La table ainsi remplit est donc visible depuis chaque Standby ou sur le Primaire et permet de lire le lag actuel pour chaque serveur. La nouveauté principale de la version 2.0 actuellement en beta est la gestion d'un **fail-over automatique**. Le principe est assez simple. Chaque démon //repmgrd// en plus de ses requêtes régulières peut désormais déclencher un process interne pour accélérer les tentatives de connexions vers le serveur Primaire. Après un nombre déterminé d'échecs successifs, les démons vont demander les uns au autres l'état de leur réplication respective. Suite à un vote entre eux sur leur possibilité de se joindre les uns les autres, et sur leur lag respectif, le choix peut être pris de considérer le serveur Primaire comme mort et de trouver le meilleur candidat pour être le nouveau serveur Primaire. Une fois ce stade atteint, deux hooks sont utilisés pour déclencher les actions à entreprendre. Un hook pour la promotion en serveur Primaire, un pour suivre le nouveau serveur Primaire. De sorte que le DBA est en charge d'écrire les scripts à utiliser. //repmgr// se contente de déterminer un état, l'administrateur est libre d'utiliser cet déclaration d'état comme il veut: modifier les configurations de [[http://wiki.postgresql.org/wiki/PgBouncer|PgBouncer]], achever l'ancien serveur Primaire pour garantir qu'il ne vienne pas perturber le système, réaffecter les serveurs, ... Pour plus d'info: * le site web de repmgr: http://repmgr.org/ * le dépot git de Greg Smith https://github.com/greg2ndQuadrant/repmgr * le channel IRC: freenode#repmgr * gestion de bugs: https://github.com/greg2ndQuadrant/repmgr/issues * Mailling-List: http://groups.google.com/group/repmgr J'ai aussi donné une conférence expliquant les principes du fail-over automatique au [[http://char11.org/|CHAR(11)]], les slides sont disponibles {{:blog:fr:2011-07-22:repmgr_char11.pdf|ici}}.