PostgreSQL – commandes backups et HA

By nicolas, juin 29, 2020

PostgreSQL fournit un ensemble d’outils pour gérer la haute disponibilité (Hight Availibility -> HA) ainsi que la répartition de charge (load balancing).

Pour le HA, le but est de s’assurer qu’un service est toujours en état de marche.

Pour le load balancing, le but est d’améliorer les performances au niveaux des requêtes en désignant quel serveur de base de données est en lecture et lequel est en écriture. Le problème du Load Balancing réside dans la synchronisation entre les serveurs d’écriture et de lecture. Car il y a un temps avant que le serveur de lecture soit mis à jour et que celui-ci rende les bons résultats.

Pour cela, il existe plusieurs technique avec la solution PostgreSQL pour répondre à cette problématique de synchronisation:

  • Failover sur disque partagé

Le failover sur disque partagé évite la surcharge dûe à la synchronisation en ayant seulement une copie de la base de données. Cela utilise un seul ensemble de disques partagé entre plusieurs serveurs. Si le serveur principal échoue, le serveur en attente est capable de monter et lancer la base comme s’il récupérait après un d’un arrêt brutal. Ceci permet un failover rapide sans perte de données.

Cette fonctionnalité de matériel partagé est commune aux périphériques de stockage en réseau. Utiliser un système de fichiers réseau est aussi possible bien qu’une grande attention doit être portée au système de fichiers pour s’assurer qu’il a un comportement POSIX complet. Une limitation significative de cette méthode est que si les disques ont un problème ou sont corrompus, les serveurs primaire et en attente sont tous les deux non fonctionnels. Un autre problème est que le serveur en attente ne devra jamais accéder au stockage partagé tant que le serveur principal est en cours d’exécution.

Il est aussi possible d’utiliser cette fonctionnalité d’une autre façon avec une réplication du système de fichiers, où toutes les modifications d’un système de fichiers sont renvoyées sur un système de fichiers situé sur un autre ordinateur. La seule restriction est que ce miroir doit être construit d’une façon qui assure le fait que le serveur en attente a une version cohérente du système de fichiers — spécifiquement, les écritures sur le serveur en attente doivent être réalisées dans le même ordre que celles sur le maître. DRBD est une solution populaire de réplication de systèmes de fichiers pour Linux.

  • Warm Standby en utilisant PITR
  • Réplication maître/esclave
  • Middleware de réplication basé sur les instructions
  • Réplication Synchrone multi-maître
  • Réplication Asynchrone à plusieurs maîtres
  • Partitionnement de données
  • Exécution de requêtes en parallèles sur plusieurs serveurs

Sources: