Note:

Implantación de Recuperación ante Desastres entre Regiones para Bases de Datos PostgreSQL en VM mediante Replicación Física en Espera

Introducción

pg_basebackup es una utilidad de línea de comandos proporcionada por PostgreSQL para realizar una copia de seguridad completa de un cluster de base de datos PostgreSQL en ejecución. Está diseñado para crear una copia binaria del cluster de base de datos, que se puede utilizar para fines de replicación o recuperación.

pg_basebackup es una utilidad de línea de comandos proporcionada por PostgreSQL para realizar una copia de seguridad completa de un cluster de base de datos PostgreSQL en ejecución. Está diseñado para crear una copia binaria del cluster de base de datos, que se puede utilizar para fines de replicación o recuperación.

Una de las ventajas clave de la utilidad pg_basebackup es que funciona sin necesidad de acceder al sistema de archivos donde reside la base de datos. En su lugar, se conecta al servidor PostgreSQL mediante el protocolo de replicación de flujo, lo que hace que sea seguro y conveniente de usar incluso mientras el servidor se está ejecutando.

Normalmente se utiliza junto con el archivado de registro de escritura anticipada (WAL), la utilidad pg_basebackup desempeña un papel crucial en la configuración de la replicación de transmisión y la garantía de alta disponibilidad y recuperación ante desastres para entornos PostgreSQL que se ejecutan en máquinas virtuales (VM).

Características principales:

En este tutorial se describen las tareas para configurar la replicación de flujo entre regiones entre dos bases de datos PostgreSQL alojadas en máquinas virtuales informáticas.

Objetivos

Requisitos

Cree un intercambio de VCN en la región. Para conectarse a las máquinas virtuales de recursos informáticos en distintas regiones, se debe configurar el intercambio de VCN. Para obtener más información, consulte:

Asegúrese de que el intercambio de VCN esté configurado correctamente para establecer una conectividad perfecta entre las bases de datos de diferentes regiones.

Tarea 1: Configuración de la base de datos PostgreSQL principal

  1. Cree el usuario denominado replicator en la base de datos PostgreSQL primaria.

    CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD '*********';
    
  2. Valide los roles/usuarios.

    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. Actualice el archivo postgresql.conf con los siguientes detalles.

    listen_addresses = '*'
    
  4. Actualice el archivo pg_hba.conf. Utilice la dirección IP de la base de datos en espera.

    host    replication     replicator      Standby_DB_IP/32       md5
    
  5. Reinicie el servicio PostgreSQL.

    sudo systemctl restart PostgreSQL
    

Tarea 2: Configuración de la base de datos PostgreSQL en espera

  1. Pare el servicio PostgreSQL.

    sudo systemctl stop PostgreSQL
    
  2. Elimine los binarios existentes.

    cp -R /var/lib/postgresql/13/main /var/lib/postgresql/13/main_old
    rm -rf /var/lib/postgresql/13/main
    
  3. Ejecute el comando pg_basebackup para configurar la replicación de flujo.

    pg_basebackup -h PrimaryDB_IP -D /var/lib/postgresql/13/main -U replicator -P -v -R -X stream -C -S slaveslot1 
    
  4. Inicie el servicio PostgreSQL.

    sudo systemctl start PostgreSQL
    

Tarea 3: Verificación de la replicación de Streaming en la base de datos PostgreSQL principal

Ejecute el siguiente comando en la base de datos PostgreSQL principal para recopilar el estado de sincronización entre la base de datos principal y la de DR.

SELECT * FROM pg_replication_slots;
SELECT * FROM pg_stat_replication;

Acuses de recibo

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.