Créer une instance répliquée en lecture seule

Sélectionnez une version de la documentation :

Pour augmenter le débit de lecture et la disponibilité, vous pouvez créer un serveur d'instance répliquée AlloyDB Omni pour un serveur AlloyDB Omni existant. Un serveur d'instance répliquée fournit un clone en lecture seule de votre serveur de base de données principal. Il met continuellement à jour ses propres données pour refléter les modifications apportées aux données de votre serveur principal.

Les sections suivantes décrivent les étapes à suivre pour configurer votre serveur principal AlloyDB Omni pour la réplication, configurer le serveur d'instance répliquée et vérifier l'état de la réplication sur le serveur principal.

Avant de commencer

Avant de continuer, installez et configurez AlloyDB Omni à l'aide du package RPM. Pour en savoir plus, consultez Installer AlloyDB Omni à l'aide de RPM.

Configurer votre serveur principal pour la réplication

  1. Mettez à jour les paramètres réseau ou de pare-feu de l'hôte de votre serveur principal afin qu'il autorise le trafic entrant provenant de l'hôte de l'instance répliquée via le port Postgres du serveur principal.

  2. Créez un utilisateur de réplication :

    psql -h localhost -U postgres -c "create user REPLICA_USER with replication password 'PASSWORD';
    grant pg_read_all_settings to REPLICA_USER;"
  3. Ajoutez les lignes suivantes dans le fichier /DATA_DIR/pg_hba.conf du serveur principal avant la ligne host all all all scram-sha-256 qui existe dans le fichier :

    host alloydbmetadata    alloydbmetadata   IP_RANGE trust
    host replication        REPLICA_USER    IP_RANGE scram-sha-256
    

    Remplacez les éléments suivants :

    • IP_RANGE : plage d'adresses IP, au format CIDR, du sous-réseau où se trouve votre instance répliquée. Exemple : 203.0.113.0/24.
    • DATA_DIR : chemin d'accès au répertoire de données du serveur principal.
  4. Redémarrez votre serveur principal :

    sudo systemctl restart alloydbomniPG_VERSION

Créer et configurer le serveur d'instance répliquée

Pour créer et configurer un serveur d'instance répliquée AlloyDB Omni, procédez comme suit :

  1. Assurez-vous que l'instance répliquée dispose d'une connectivité réseau au serveur principal :

    ping SOURCE_IP

    Remplacez SOURCE_IP par l'adresse IP de l'instance AlloyDB Omni principale à partir de laquelle effectuer la réplication.

  2. Assurez-vous que l'instance dupliquée peut se connecter au serveur principal :

    psql "host=SOURCE_IP user=REPLICA_USER replication=1" -c "IDENTIFY_SYSTEM;"

    Le résultat doit ressembler à ce qui suit :

           systemid       | timeline |  xlogpos  | dbname
     ---------------------+----------+-----------+--------
      7376500460465963036 |        1 | 0/454B670 |
      (1 row)
    
  3. L'instance répliquée doit disposer d'un emplacement de stockage persistant sur le disque. Vous devez exécuter cette commande en tant qu'utilisateur postgres :

    sudo -u postgres pg_basebackup \
      --pgdata=DATA_DIR \
      --checkpoint=fast \
      --host="SOURCE_IP" \
      --port="SOURCE_PORT" \
      --username=REPLICA_USER \
      --create-slot \
      --write-recovery-conf \
      --progress \
      --slot="SLOT_NAME"

    Remplacez les éléments suivants :

    • SOURCE_PORT : port TCP de l'instance AlloyDB Omni principale à partir de laquelle effectuer la réplication. Si vous ne fournissez pas cette valeur, AlloyDB Omni applique une valeur par défaut de 5432.
    • SLOT_NAME : libellé du nom de l'emplacement de réplication.
    • DATA_DIR : chemin d'accès au répertoire de données du serveur d'instance répliquée.
  4. Démarrez votre instance répliquée :

    sudo systemctl start alloydbomniPG_VERSION

Vérifier l'état de la réplication sur le serveur principal

Pour vérifier que la réplication est correctement configurée, exécutez la commande suivante sur l'hôte du serveur principal :

psql -h localhost -U postgres -c "select * from pg_stat_replication"

La table de sortie contient une ligne pour chaque instance répliquée connectée à votre serveur de base de données principal.

Une fois la réplication configurée, toutes les insertions, mises à jour et suppressions de lignes dans votre serveur de base de données principal deviennent lisibles sur votre instance répliquée en quelques secondes.