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 utilitaire pg_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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow