Réplication et basculement en continu sur PostgreSQL

14

Je fais une preuve de concept sur la réplication PostgreSQL. Après la discussion sur le forum, nous avons décidé d'aller avec la réplication en streaming car les performances sont bonnes par rapport aux autres solutions. PostgreSQL ne fournit pas de basculement automatique pour la réplication en streaming. Nous pouvons basculer l'esclave en maître à l'aide d'un fichier déclencheur mais ce n'est pas gérable. J'aimerais donc une solution avec basculement automatique et haute disponibilité.

Différentes solutions sont disponibles:

  1. Repmgr
  2. Linux Heartbeat
  3. Pgpool-II (pour le basculement automatique uniquement)
  4. Tout autre outil au cas où vous l'auriez utilisé.

Ma question est quelle solution utiliser?

Saurabh
la source

Réponses:

8

Dans notre boutique, nous avons sélectionné repmgr et pgbouncer au lieu de pgpool. repmgr dispose de bons outils pour configurer et maintenir le cluster de serveurs de bases de données répliqués. Dans notre cas, 1 maître et 2 esclaves (un basculement et un test de performance de lecture en direct qui peuvent devenir le basculement du nouveau maître). pgpool a des problèmes avec les changements de configuration, dans la plupart des cas, vous devez redémarrer le service et vous avez donc un certain temps d'arrêt. C'est un problème lorsque vous avez besoin d'une disponibilité 24x7x365.

repmgrd (le démon) aide à sélectionner le nouveau maître après un basculement, vous ne voulez vraiment pas d'une situation de cerveau divisé. Nous avons une adresse IP virtuelle pour la base de données master, la base de données qui est master à ce moment. Lorsqu'un autre serveur devient maître, il s'agit du seul serveur utilisant cette adresse. Chaque serveur de base de données possède également sa propre adresse IP pour les requêtes en lecture seule.

repmgr est maintenu par les mêmes gars qui ont créé la réplication en streaming en premier lieu, afin qu'ils sachent de quoi ils parlent. La version 2.0 est sur le point de sortir.

Préparez-vous à la pire situation, faites des tests sérieux en tirant sur les prises d'alimentation et de réseau! Lorsque quelque chose ne va pas, beaucoup d'autres choses ont déjà mal tourné et vous mordront dans le dos lorsque vous ne pourrez pas vous le permettre.

La réplication est une chose, un basculement fonctionnel après de graves problèmes, en est une autre.

Frank Heikens
la source
1

Nous utilisons deux solutions différentes en combinaison en même temps ...

Pgpool-II pour la réplication synchrone et Slony2 pour la réplication asynchrone (déclenchée).

La performance est excellente

user5701
la source
Merci pour la réponse ... En fait, j'essaie Pgpool-II avec la réplication en streaming. Il fournit le basculement automatique. Mais si je redémarre le nœud principal, pgpool-II peut-il redémarrer en tant que nœud maître ou de secours?
Saurabh
Pour autant que je sache certainement pas. vous devrez effectuer une récupération manuelle du nœud principal. Notre configuration est un peu différente. c'est un environnement multi-maître et tous les nœuds ont des droits égaux. Si un nœud se désynchronise, les équilibreurs de charge refusent de rediriger les clients vers ce nœud.
user5701