Maison  >  Article  >  tutoriels informatiques  >  Solution de réplication maître-esclave PostgreSQL

Solution de réplication maître-esclave PostgreSQL

王林
王林avant
2024-03-16 15:07:121021parcourir

PostgreSQL 主从复制方案

PostgreSQL prend en charge une variété de solutions de réplication maître-esclave, qui peuvent être utilisées pour la sauvegarde des données, la récupération après panne et l'équilibrage de charge. Ce qui suit est un schéma de réplication maître-esclave courant. Vous pouvez choisir la méthode appropriée en fonction de vos besoins.

  1. Configurer la base de données principale :

    • Sur le serveur de base de données principal, assurez-vous que PostgreSQL est installé et configuré correctement.
    • Modifiez le fichier de configuration postgresql.conf de la base de données principale et activez la fonction de réplication. Définissez les paramètres suivants :

      wal_level = replicamax_wal_senders = 10
    • Modifiez le fichier pg_hba.conf pour permettre au serveur esclave de se connecter au serveur maître. Ajoutez les lignes suivantes :

      host replication <从服务器IP地址> trust
    • Redémarrez le serveur de base de données principal pour que la configuration prenne effet.
  2. Créer à partir de la base de données :

    • Sur le serveur de base de données esclave, assurez-vous que PostgreSQL est installé et configuré correctement.
    • Dans le fichier de configuration postgresql.conf de la base de données esclave, activez la fonction de réplication. Définissez les paramètres suivants :

      wal_level = replica
    • Créez un répertoire de données identique à la base de données principale et assurez-vous qu'il est vide.
    • Dans le fichier pg_hba.conf de la base de données esclave, ajoutez la ligne suivante pour autoriser les connexions d'esclave à esclave :

      host replication <主服务器IP地址> trust
    • Redémarrez le serveur de base de données esclave pour que la configuration prenne effet.
  3. Configurer la réplication maître-esclave :

    • Sur le serveur de base de données principal, créez un rôle utilisateur pour la réplication. Exécutez la commande suivante dans le terminal psql :

      CREATE ROLE replicator REPLICATION LOGIN CONNECTION LIMIT 10 ENCRYPTED PASSWORD 'password';

      Remplacez « mot de passe » par votre mot de passe actuel.

    • Sur le serveur de base de données principal, créez un emplacement de réplication. Exécutez la commande suivante dans le terminal psql :

      SELECT * FROM pg_create_physical_replication_slot('replication_slot_name');

      Notez qu'il faut remplacer 'replication_slot_name' par le nom réel de l'emplacement de réplication.

    • Sur le serveur de base de données principal, modifiez le fichier pg_hba.conf pour autoriser les connexions pour les rôles d'utilisateur répliqués. Ajoutez les lignes suivantes :

      host replication replicator <从服务器IP地址> trust
    • Redémarrez le serveur de base de données principal pour que la configuration prenne effet.
  4. Démarrer la réplication maître-esclave :

    • Sur le serveur de base de données esclave, utilisez la commande suivante pour vous connecter à la base de données maître et lancer la réplication :

      pg_basebackup -h <主服务器IP地址> -U replicator -p 5432 -D /path/to/data_directory -P -R -X stream -c fast

      Notez qu'il faut remplacer '99adec83ec40b2efd46b008c59ecd1e8' par l'adresse IP réelle du serveur maître et '/path/to/data_directory' par le chemin du répertoire de données de la base de données esclave.

    • Dans le fichier de configuration postgresql.conf de la base de données esclave, définissez les paramètres suivants :

      primary_conninfo = 'host=<主服务器IP地址> port=5432 user=replicator password=password'primary_slot_name = 'replication_slot_name'

      Remarque : remplacez « 99adec83ec40b2efd46b008c59ecd1e8 », « mot de passe » et « nom_emplacement_de réplication » par les valeurs réelles.

    • Démarrez le serveur de base de données esclave.

Après avoir terminé les étapes ci-dessus, la réplication maître-esclave commencera

Courez. Les modifications de données sur la base de données maître seront automatiquement répliquées sur la base de données esclave et la base de données esclave maintiendra la cohérence avec la base de données maître. Vous pouvez utiliser des outils de surveillance pour surveiller l'état de la réplication maître-esclave afin de garantir son bon fonctionnement.

Veuillez noter que ce qui précède n'est qu'un aperçu d'une solution de réplication maître-esclave et que la mise en œuvre réelle peut devoir être ajustée en fonction des environnements et des besoins spécifiques. Il est recommandé de se référer à la documentation officielle de PostgreSQL et à d'autres ressources fiables pour des conseils et des instructions plus détaillées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer