Note :

Mettre en oeuvre 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

Présentation

pg_basebackup est un utilitaire de ligne de commande fourni par PostgreSQL pour effectuer une sauvegarde complète d'une grappe 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'une grappe 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 l'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.

Habituellement utilisé en conjonction avec l'archivage WAL (écriture anticipée), l'utilitaire pg_basebackup joue un rôle crucial dans la configuration de la réplication en continu et la garantie d'une haute disponibilité et d'une reprise après sinistre pour les environnements PostgreSQL exécutés sur des machines virtuelles.

Principales fonctions :

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éalables

Créez un appairage de VCN dans la région. Pour se connecter aux machines virtuelles de calcul entre les régions, l'appairage de VCN doit être configuré. Pour plus d'informations, voir :

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

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

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

    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 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 les bases de données principale et DR.

SELECT * FROM pg_replication_slots;
SELECT * FROM pg_stat_replication;

Remerciements

Autres ressources d'apprentissage

Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

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