postgresql
Haute disponibilité PostgreSQL
Recherche…
Réplication dans PostgreSQL
Configuration du serveur primaire
Exigences:
- Utilisateur de réplication pour les activités de réplication
- Répertoire pour stocker les archives WAL
Créer un utilisateur de réplication
createuser -U postgres replication -P -c 5 --replication
+ option -P will prompt you for new password + option -c is for maximum connections. 5 connections are enough for replication + -replication will grant replication privileges to the user
Créer un répertoire d'archivage dans le répertoire de données
mkdir $PGDATA/archive
Editez le fichier pg_hba.conf
Ce fichier d'authentification de base hôte contient le paramètre pour l'authentification automatique du client. Ajouter ci-dessous l'entrée:
#hosttype database_name user_name hostname/IP method host replication replication <slave-IP>/32 md5
Editez le fichier postgresql.conf
C'est le fichier de configuration de PostgreSQL.
wal_level = hot_standby
Ce paramètre détermine le comportement du serveur esclave.
`hot_standby` logs what is required to accept read only queries on slave server. `streaming` logs what is required to just apply the WAL's on slave. `archive` which logs what is required for archiving.
archive_mode=on
Ce paramètre permet d'envoyer des segments WAL à l'emplacement d'archivage à l'aide du paramètre
archive_command
.archive_command = 'test ! -f /path/to/archivedir/%f && cp %p /path/to/archivedir/%f'
En gros, ce que
archive_command
fait, c’est de copier les segments WAL dans le répertoire d’archivage.wal_senders = 5
Il s'agit du nombre maximal de processus émetteur WAL.Maintenant, redémarrez le serveur principal.
Sauvegarde du serveur primaire sur le serveur esclave
Avant de modifier le serveur, arrêtez le serveur principal.
Important: Ne redémarrez le service que lorsque toutes les étapes de configuration et de sauvegarde sont terminées. Vous devez ouvrir le serveur de secours dans un état où il est prêt à être un serveur de sauvegarde. Cela signifie que tous les paramètres de configuration doivent être en place et que les bases de données doivent être déjà synchronisées. Sinon, la réplication en continu ne démarrera pas »
Exécutez maintenant l'utilitaire pg_basebackup
pg_basebackup
utilitairepg_basebackup
copie les données du répertoire de données du serveur principal vers le répertoire de données esclave.$ pg_basebackup -h <primary IP> -D /var/lib/postgresql/<version>/main -U replication -v -P --xlog-method=stream
-D: This is tells pg_basebackup where to the initial backup
-h: Specifies the system where to look for the primary server
-xlog-method=stream: This will force the pg_basebackup to open another connection and stream enough xlog while backup is running.
It also ensures that fresh backup can be started without failing back to using an archive.
Configuration du serveur de secours
Pour configurer le serveur de secours, vous devez modifier postgresql.conf et créer un nouveau fichier de configuration nommé recovery.conf.
hot_standby = on
Ceci spécifie si vous êtes autorisé à exécuter des requêtes lors de la récupération
Création du fichier recovery.conf
standby_mode = on
Définissez la chaîne de connexion sur le serveur principal. Remplacez par l'adresse IP externe du serveur principal. Remplacez par le mot de passe de l'utilisateur nommé replication
`primary_conninfo = 'host = port = 5432 user = mot de passe de réplication ='
(Facultatif) Définissez l'emplacement du fichier de déclenchement:
trigger_file = '/tmp/postgresql.trigger.5432'
Le chemin d'accès au
trigger_file
que vous spécifiez correspond à l'emplacement où vous pouvez ajouter un fichier lorsque vous souhaitez que le système bascule sur le serveur de secours. La présence du fichier "déclenche" le basculement. Vous pouvez également utiliser la commande pg_ctl promotion pour déclencher le basculement.
Démarrer le serveur de secours
Vous avez maintenant tout en place et vous êtes prêt à ouvrir le serveur de secours
Attribution
Cet article est en grande partie dérivé et attribué à la procédure de configuration de PostgreSQL pour la haute disponibilité et la réplication avec redondance d'UC , avec des modifications mineures du formatage et des exemples, ainsi que du texte supprimé. La source a été publiée sous la licence Creative Commons Public License 3.0 , qui est conservée ici.