Note:

Automatización del switchover y el failover de la base de datos PostgreSQL con Oracle Cloud Infrastructure Full Stack Disaster Recovery

Introducción

Oracle Cloud Infrastructure Full Stack Disaster Recovery (OCI Full Stack DR) organiza la transición de recursos informáticos, bases de datos y aplicaciones entre regiones de Oracle Cloud Infrastructure (OCI) de todo el mundo con un solo clic. Los clientes pueden automatizar los pasos necesarios para recuperar uno o más sistemas de negocio sin rediseñar ni rediseñar la infraestructura, las bases de datos o las aplicaciones existentes y sin necesidad de servidores de conversión o gestión especializados.

La recuperación ante desastres de pila completa de OCI es un servicio altamente flexible. Podemos aprovechar los grupos de planes definidos por el usuario en el plan de recuperación ante desastres (DR) para gestionar las operaciones de recuperación ante desastres del cubo de OCI Object Storage.

Arquitectura de despliegue

Arquitectura de Object Storage

Nota: La región principal es Fráncfort y la región de DR es Londres.

Objetivos

Requisitos

Tarea 1: Instalación y configuración de PostgreSQL

  1. Para instalar PostgreSQL, conéctese al host mediante su cliente SSH favorito y ejecute el siguiente comando.

    sudo dnf install -y postgresql postgresql-server postgresql-contrib
    sudo /usr/bin/postgresql-setup initdb
    sudo systemctl enable postgresql
    sudo systemctl start postgresql
    
  2. Active el firewall de Linux para recibir conexiones.

    sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent
    sudo firewall-cmd --reload
    
  3. Edite el archivo postgresql.conf (que se encuentra en xxxxx) para permitir la conexión y cambie los parámetros wal de la siguiente manera.

    ...
    listen_addresses = '*'
    ...
    wal_level = logical
    wal_log_hints = on
    ...
    
  4. Conéctese a la base de datos y, a continuación, cree el usuario de replicación.

    sudo su postgres
    psql
    
    CREATE ROLE replica_user WITH REPLICATION LOGIN PASSWORD 'YourUserPassword';
    
  5. Agregue este usuario al archivo pg_hba.conf (que se encuentra en xxxxx).

    host    all             all             all                    md5
    host    replication     replica_user    <IP Host 1>            md5
    host    replication     replica_user    <IP Host 2>            md5
    
  6. Reinicie la base de datos PostgreSQL para aplicar los cambios.

    sudo systemctl restart postgresql
    
  7. Repita este proceso en el segundo servidor.

Tarea 2: Replicación de la base de datos PostgreSQL

En esta tarea, configuraremos la replicación de base de datos PostgreSQL nativa.

  1. Conéctese a la base de datos primaria y cree la ranura de réplica.

    sudo su postgres
    psql
    
    select pg_create_physical_replication_slot('replica_0');
    
  2. Conéctese a la base de datos secundaria y ejecute los siguientes comandos para crear la replicación.

    sudo systemctl stop postgresql
    sudo rm -rv /var/lib/pgsql/data/
    sudo pg_basebackup -d "host=<IP Host 1> port=5432 user=replica_user password=YourUserPassword" -w -X stream -S replica_0 -v -R -W -D /var/lib/pgsql/data/ --no-password
    sudo chown postgres -R /var/lib/pgsql/data/
    sudo systemctl start postgresql
    
  3. Compruebe que la replicación fluye en la base de datos primaria.

    select * from pg_stat_replication;
    

    Debería poder ver una línea con el proceso de transmisión.

Tarea 3: Creación del Plan de Switchover

Tarea 3.1: Creación y asociación de grupos de protección de Disaster Recovery (DRPG)

  1. En la región principal (Fráncfort), haga clic en el menú de hamburguesa y vaya a Migración y recuperación ante desastres, Recuperación ante desastres, Grupo de protección de recuperación ante desastres y Crear grupo de protección de recuperación ante desastres.

    Crear grupo de protección de recuperación ante desastres en Ashburn

  2. En la región en espera (Londres), haga clic en el menú de hamburguesa y vaya a Migración y recuperación ante desastres, Recuperación ante desastres, Grupo de protección de recuperación ante desastres y Crear grupo de protección de recuperación ante desastres.

    Crear grupo de protección de recuperación ante desastres en Ashburn

  3. En la región principal (Fráncfort), introduzca la siguiente información y haga clic en Asociar.

    • Rol: Primary.
    • Región peer: UK South (London).
    • Grupo de protección de DR de peer: postgresql-lon.

    Asociar principal y en espera

Tarea 3.2: Adición de miembros al DRPG principal y en espera

  1. En el DRPG principal (postgresql-fra), seleccione Miembros y agregue la VM de cálculo (postgresql01) como miembro.

    Agregar miembros principales

    Nota: Al agregar Compute como miembro, seleccione Instancia no móvil en el tipo de instancia informática, ya que tenemos una configuración activa-pasiva para la base de datos PostgreSQL.

  2. En el DRPG en espera (postgresql-lon), seleccione Miembros y agregue la VM de cálculo (postgresql02) como miembro.

    Agregar Miembros en Espera

    Nota: Al agregar Compute como miembros, seleccione Instancia no móvil en el tipo de instancia informática, ya que tenemos una configuración activa-pasiva para la base de datos PostgreSQL.

Tarea 3.3: Creación de un plan de switchover en el DRPG en espera (Londres)

Plan de switchover: tipo de plan de DR que realiza una transición planificada de servicios del DRPG principal al DRPG en espera.

  1. Cree un plan de switchover en el DRPG en espera postgresql-lon.

  2. Seleccione Planes y haga clic en Crear plan.

  3. Introduzca el nombre como postgresql-switchover-frankfurt-london y seleccione el tipo de plan como Switchover (planned).

  4. Haga clic en Crear.

Switchover de plan

Nota: Asegúrese de crear el plan de switchover desde el DRPG en espera (Londres).

Tarea 3.4: Personalización del Plan de Switchover con Varios Grupos de Planes Definidos por el Usuario

Hemos agregado Compute (instancia no móvil) como miembros en ambos grupos de protección de DR. Necesitamos personalizar el plan de switchover con grupos de planes definidos por el usuario adicionales. También necesitamos crear los siguientes scripts bash y cargarlos en OCI Object Storage, para que podamos llamar a esos scripts durante el switchover.

Nota: Estos scripts se deben cargar en el cubo de la región de Londres.

Grupos de planes

Un flujo de trabajo típico para el switchover de DR es el siguiente:

  1. Parar base de datos PostgreSQL en la región de Fráncfort: el grupo de planes tendrá pasos para parar la base de datos PostgreSQL en la región de Fráncfort.

  2. Ascender base de datos PostgreSQL en la región de Londres: el grupo de planes tendrá pasos para promocionar la base de datos PostgreSQL en la región de Londres.

  3. Cambiar dirección de replicación de base de datos PostgreSQL: el grupo de planes tendrá pasos para cambiar la dirección de replicación de base de datos PostgreSQL (LON-FRA).

Nota: Asegúrese de que los pasos se ejecutan en el mismo orden.

Cree el siguiente grupo de planes definido por el usuario.

  1. Cree el grupo de planes Parar base de datos PostgreSQL en la región Fráncfort.

    1. En Grupos de planes, haga clic en Agregar grupo para crear un grupo de planes personalizados para parar la base de datos PostgreSQL en la región de Fráncfort. Introduzca el nombre de grupo como Stop PostgreSQL Database at Frankfurt Region.

      Parar base de datos PostgreSQL en FRA

    2. Haga clic en Agregar paso e introduzca la siguiente información. Agregaremos un paso en el grupo de planes.

      • Asegúrese de seleccionar la región como Frankfurt y la instancia de destino como postgresql01. Seleccione el script de ejecución de Object Storage y la ubicación del script selecciona el cubo de OCI Object Storage posgres-dr-lon.

      • Introduzca los detalles del script stop_postgresql.sh con la ubicación del script. El script cerrará la base de datos PostgreSQL en la región FRA.

      • Haga clic en Agregar paso y verifique el paso agregado.

      Paso Parar Base de Datos PostgreSQL

  2. Cree un grupo de planes Ascender base de datos PostgreSQL en la región de Londres.

    1. En Grupos de planes, haga clic en Agregar grupo para crear un grupo de planes personalizados para promocionar la base de datos PostgreSQL en Londres. Introduzca el nombre de grupo como Promote PostgreSQL Database at London Region.

      Promocionar base de datos PostgreSQL en LON

    2. Haga clic en Agregar paso e introduzca los siguientes detalles. Agregaremos un paso en el grupo de planes.

      • Asegúrese de seleccionar la región como London, la instancia de destino como postgresql02. Seleccione el script de ejecución de almacenamiento de objetos y la ubicación del script selecciona el cubo de OCI Object Storage posgres-dr-lon.

      • Introduzca los detalles del script promote_postgresql.sh con la ubicación del script. El script cerrará la base de datos PostgreSQL en la región FRA.

      • Haga clic en Agregar paso y verifique el paso agregado.

      Paso Promocionar base de datos PostgreSQL

  3. Cree el grupo de planes Cambiar dirección de replicación de base de datos PostgreSQL.

    1. En Grupos de planes, haga clic en Agregar grupo para crear un grupo de planes personalizados para cambiar la dirección de replicación de la base de datos PostgreSQL. Introduzca el nombre de grupo como Promote PostgreSQL Database at London Region.

      Cambiar replicación de base de datos PostgreSQL directionN

    2. Haga clic en Agregar paso e introduzca la siguiente información. Agregaremos un paso en el grupo de planes.

      • Asegúrese de seleccionar la región como Frankfurt y la instancia de destino como postgresql01. Seleccione el script de ejecución de Object Storage y la ubicación del script, seleccione el cubo de OCI Object Storage posgres-dr-lon.

      • Introduzca los detalles del script change_replication_direction.sh con la ubicación del script. El script cerrará la base de datos PostgreSQL en la región FRA.

      • Haga clic en Agregar paso y verifique el paso agregado.

      Cambiar paso de dirección de replicación de base de datos PostgreSQL

Grupos de Planes Londres

Tarea 4: Ejecución de Comprobaciones Previas y Ejecución del Plan de Switchover

La opción Ejecutar comprobaciones previas realiza una validación rápida de todos los pasos de un plan de DR y los miembros asociados a estos.

  1. En el plan de switchover postgresql-switchover-frankfurt-london, haga clic en Ejecutar comprobaciones previas para ejecutar comprobaciones previas.

    Comprobación previa de intercambio

    Verifique que se haya completado correctamente.

    Estado de comprobación previa de switchover

  2. En el plan de switchover postgresql-switchover-frankfurt-london, haga clic en Ejecutar plan de recuperación ante desastres para ejecutar el plan.

    Ejecución de un plan de recuperación ante desastres

  3. Compruebe el estado del plan y asegúrese de que todos los pasos del plan se realizan correctamente.

    Ejecutar estado de plan de recuperación ante desastres

  4. El plan de switchover realiza todos los grupos de planes en un orden específico. Después de la correcta ejecución del plan, la base de datos PostgreSQL se promocionará a maestra en la región de Londres.

  5. El rol cambiará automáticamente en el DRPG. Ahora, Londres tendrá la primaria y Frankfurt tendrá el rol de reserva.

  6. Verifique la base de datos PostgreSQL en Londres.

Tarea 5: Creación de un Plan de Switchover en el DRPG en Espera (Fráncfort) para Switchback

Tarea 5.1: Creación de un plan de switchover en el DRPG en espera (Londres)

  1. Cree un plan de switchover en el DRPG en espera postgresql-fran.

  2. Seleccione Planes y haga clic en Crear plan.

  3. Introduzca el nombre como postgresql-switchover-london-frankfurt y seleccione el tipo de plan como Switchover (planned).

  4. Haga clic en Crear.

Grupos de planes

Nota: Asegúrese de crear el plan de switchover desde el DRPG en espera (Fráncfort).

Tarea 5.2: Personalización del Plan de Switchover con Varios Grupos de Planes Definidos por el Usuario

Necesitamos personalizar el plan de switchover con grupos de planes definidos por el usuario adicionales. También necesitamos crear los siguientes scripts bash y cargarlos en OCI Object Storage, para que podamos llamar a esos scripts durante el switchover.

Nota: Estos scripts se deben cargar en el cubo de la región de Fráncfort.

Un flujo de trabajo típico para el switchover de DR es el siguiente:

  1. Rebobinar bases de datos PostgreSQL: planifique el grupo para rebobinar la base de datos. Frankfurt sincronizará el contenido de la base de datos de Londres.

  2. Restablecer replicación de base de datos PostgreSQL en Londres: el grupo de planes tendrá un paso para empezar a replicar la base de datos PostgreSQL desde Fráncfort a la región de Londres.

Nota: Asegúrese de que los pasos se ejecutan en el mismo orden.

Cree los siguientes dos grupos de planes definidos por el usuario

  1. Cree el grupo de planes Rewind PostgreSQL Databases.

    1. En Grupos de planes, haga clic en Agregar grupo para crear un grupo de planes personalizados para rebobinar la base de datos PostgreSQL en la región de Fráncfort. Introduzca el nombre de grupo como Rewind PostgreSQL Databases at Frankfurt Region.

      Rebobinar la base de datos PostgreSQL en FRA

    2. Haga clic en Agregar paso e introduzca la siguiente información. Agregaremos un paso al grupo de planes.

      • Asegúrese de seleccionar la región como Frankfurt y la instancia de destino como postgresql01. Seleccione el script de ejecución de almacenamiento de objetos y la ubicación del script selecciona el cubo de OCI Object Storage posgres-dr-lon.

      • Introduzca los detalles del script rewind_postgresql.sh con la ubicación del script. El script cerrará la base de datos PostgreSQL en la región FRA.

      • Haga clic en Agregar paso y verifique el paso agregado.

      Rebobinar paso de base de datos PostgreSQL

  2. Cree el grupo de planes Reestablecer replicación de base de datos PostgreSQL en Londres.

    1. En Grupos de planes, haga clic en Agregar grupo para crear un grupo de planes personalizados para restablecer la replicación de base de datos PostgreSQL en Londres. Introduzca el nombre de grupo como Promote PostgreSQL Database at London Region.

      Restablecer replicación de base de datos PostgreSQL en LON

    2. Haga clic en Agregar paso e introduzca la siguiente información. Agregaremos un paso en el grupo de planes.

      • Asegúrese de seleccionar la región como London y la instancia de destino como postgresql02. Seleccione el script de ejecución de almacenamiento de objetos y la ubicación del script selecciona el cubo de OCI Object Storage posgres-dr-lon.

      • Introduzca los detalles del script replicate_postgresql.sh con la ubicación del script. El script cerrará la base de datos PostgreSQL en la región FRA.

      • Haga clic en Agregar paso y verifique el paso agregado.

      Restablecer paso de replicación de base de datos PostgreSQL

Tarea 6: Ejecución de Comprobaciones Previas y Ejecución del Plan de Switchover

La opción Ejecutar comprobaciones previas realiza una validación rápida de todos los pasos de un plan de DR y los miembros asociados a estos.

  1. En el plan de switchover postgresql-switchover-london-frankfurt, haga clic en Ejecutar comprobaciones previas para ejecutar comprobaciones previas.

    Comprobación previa de intercambio

    Verifique que se haya completado correctamente.

    Estado de comprobación previa de switchover

  2. En el plan de switchover postgresql-switchover-london-frankfurt, haga clic en Ejecutar plan de recuperación ante desastres para ejecutar el plan.

    Ejecución de un plan de recuperación ante desastres

  3. Compruebe el estado del plan y asegúrese de que todos los pasos del plan se realizan correctamente.

    Ejecutar estado de plan de recuperación ante desastres

  4. El plan de switchover realiza todos los grupos de planes en un orden específico. Después de la ejecución correcta del plan, la base de datos PostgreSQL se promocionará a maestra en la región de Fráncfort.

  5. El rol cambiará automáticamente en el DRPG. Ahora, Frankfurt tendrá la primaria y Londres tendrá el papel de reserva.

  6. Verifique la base de datos PostgreSQL en Frankfurt.

Pasos Siguientes

Ha visto cómo realizar automáticamente el switchover de la base de datos PostgreSQL y realizar operaciones de recuperación ante desastres mediante OCI Full Stack DR. Para obtener más información, consulte la documentación de recuperación ante desastres de pila completa de OCI en la sección Enlaces relacionados.

Agradecimientos

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 Oracle Learning Explorer.

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