Remarques :

Implémenter la récupération après sinistre inter-région pour les bases de données PostgreSQL sur une machine virtuelle à l'aide de la réplication de secours physique

Introduction

pg_basebackup est un utilitaire de ligne de commande fourni par PostgreSQL pour effectuer une sauvegarde complète d'un cluster de base de données PostgreSQL en cours d'exécution. Il est conçu pour créer une copie binaire du cluster de base de données, qui peut être utilisée à des fins de réplication ou de récupération.

pg_basebackup est un utilitaire de ligne de commande fourni par PostgreSQL pour effectuer une sauvegarde complète d'un cluster de base de données PostgreSQL en cours d'exécution. Il est conçu pour créer une copie binaire du cluster de base de données, qui peut être utilisée à des fins de réplication ou de récupération.

L'un des principaux avantages de l'utilitaire pg_basebackup est qu'il fonctionne sans nécessiter d'accès au système de fichiers où réside la base de données. Au lieu de cela, il se connecte au serveur PostgreSQL à l'aide du protocole de réplication en continu, ce qui le rend sûr et pratique à utiliser même pendant l'exécution du serveur.

Généralement utilisé conjointement avec l'archivage de la journalisation anticipée en écriture (WAL), l'utilitaire pg_basebackup joue un rôle crucial dans la configuration de la réplication en continu et dans la garantie de la haute disponibilité et de la récupération après sinistre pour les environnements PostgreSQL exécutés sur des machines virtuelles.

Fonctionnalités clés:

Ce tutoriel décrit les tâches de configuration de la réplication en continu inter-région entre deux bases de données PostgreSQL hébergées sur des machines virtuelles de calcul.

Objectifs

Prérequis

Créez un appairage VCN dans toute la région. Pour vous connecter aux machines virtuelles de calcul d'une région à l'autre, l'appairage VCN doit être configuré. Pour plus d'informations, reportez-vous aux sections suivantes :

Assurez-vous que l'appairage VCN est correctement configuré pour établir une connectivité transparente entre les bases de données dans différentes régions.

Tâche 1 : configuration de la base de données principale PostgreSQL

  1. Créez l'utilisateur nommé replicator dans la base de données principale PostgreSQL.

    CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD '*********';
    
  2. Validez les rôles/utilisateurs.

    postgres=# \du
                                        List of roles
       Role name    |                         Attributes                         | Member of
    ----------------+------------------------------------------------------------+-----------
    admin          | Superuser                                                  | {}
    guest          |                                                            | {}
    mytestdb       |                                                            | {}
    postgres       | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
    replicator     | Replication  
    
  3. Mettez à jour le fichier postgresql.conf avec les détails suivants.

    listen_addresses = '*'
    
  4. Mettez à jour le fichier pg_hba.conf. Utilisez l'adresse IP de la base de données de secours.

    host    replication     replicator      Standby_DB_IP/32       md5
    
  5. Redémarrez le service PostgreSQL.

    sudo systemctl restart PostgreSQL
    

Tâche 2 : configurer la base de données PostgreSQL de secours

  1. Arrêtez le service PostgreSQL.

    sudo systemctl stop PostgreSQL
    
  2. Supprimez les fichiers binaires existants.

    cp -R /var/lib/postgresql/13/main /var/lib/postgresql/13/main_old
    rm -rf /var/lib/postgresql/13/main
    
  3. Exécutez la commande pg_basebackup pour configurer la réplication de transmission en continu.

    pg_basebackup -h PrimaryDB_IP -D /var/lib/postgresql/13/main -U replicator -P -v -R -X stream -C -S slaveslot1 
    
  4. Démarrez le service PostgreSQL.

    sudo systemctl start PostgreSQL
    

Tâche 3 : vérifier la réplication en continu sur la base de données PostgreSQL principale

Exécutez la commande suivante sur la base de données PostgreSQL principale pour collecter le statut de synchronisation entre la base de données principale et la base de données de récupération après sinistre.

SELECT * FROM pg_replication_slots;
SELECT * FROM pg_stat_replication;

Accusés de réception

Ressources de formation supplémentaires

Explorez d'autres ateliers sur le site docs.oracle.com/learn ou accédez à d'autres contenus d'apprentissage gratuits sur le canal Oracle Learning YouTube. En outre, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, consultez Oracle Help Center.