Obtener información sobre la configuración de una base de datos en espera para la recuperación ante desastres

Oracle Data Guard garantiza alta disponibilidad, protección de datos y recuperación ante desastres para los datos empresariales que residen en Oracle Database. Oracle Data Guard proporciona un completo conjunto de servicios que crean, mantienen, gestionan y controlan una o más bases de datos en espera para permitir que las bases de datos Oracle de producción sobreviven a desastres y corrupciones de datos.

Oracle Data Guard mantiene estas bases de datos en espera como copias de la base de datos de producción. Si la base de datos de producción deja de estar disponible debido a una interrupción planificada o no planificada, Oracle Data Guard puede cambiar cualquier base de datos en espera al rol de producción, minimizando el tiempo de inactividad asociado a la interrupción.

Arquitectura

Esta arquitectura muestra una configuración de Oracle Data Guard con una base de datos primaria que transmite datos de redo a una base de datos en espera. La base de datos en espera se encuentra de forma remota desde la base de datos primaria para operaciones de recuperación ante desastres y copia de seguridad.

A continuación se muestra la descripción de dataguard-dr-db.png
Descripción de la ilustración dataguard-dr-db.png

dataguard-dr_db-oracle.zip

Oracle Data Guard utiliza los servicios de transporte de redo y los servicios de aplicación para gestionar la transmisión de datos de redo, la aplicación de datos de redo y los cambios en los roles de base de datos.

Esta arquitectura soporta los siguientes componentes de Oracle Data Guard:

  • Servicios de Transporte de Redo

    Los servicios de transporte de redo controlan la transferencia automatizada de datos de redo de la base de datos de producción a uno o más destinos de archivado.

    Los servicios de transporte de redo realizan las siguientes tareas:

    • Transmita los datos de redo del sistema principal a los sistemas en espera de la configuración.
    • Gestione el proceso de resolución de los huecos en los archivos redo log archivados debido a un fallo de red.
    • Detecte automáticamente los archivos redo log archivados que faltan o están dañados en un sistema en espera y recupere automáticamente los archivos redo log archivados de sustitución de la base de datos primaria u otra base de datos en espera.
  • Aplicar servicios

    Los servicios de aplicación aplican automáticamente los datos de redo en la base de datos en espera para mantener la coherencia con la base de datos primaria.

    Los datos de redo se transmiten desde la base de datos primaria y se escriben en el redo log en espera en la base de datos en espera. Los datos de redo se aplican directamente desde los archivos redo log en espera, ya que se rellenan mediante la aplicación en tiempo real. Los servicios de aplicación también permiten el acceso de solo lectura a los datos.

  • Transiciones de roles
    Con Oracle Data Guard, puede cambiar el rol de una base de datos de una base de datos en espera a una base de datos primaria o de una base de datos primaria a una base de datos en espera mediante una operación de switchover o de failover. Oracle Data Guard simplifica las transiciones de roles y automatiza los failovers.
    • Un switchover es una reversión de roles entre la base de datos primaria y una de sus bases de datos en espera. Un switchover garantiza que no se produzcan pérdidas de datos. Esto se suele realizar para el mantenimiento planificado del sistema principal. Durante una operación de switchover, la base de datos primaria pasa a un rol en espera y la base de datos en espera pasa al rol principal.
    • Un failover se produce cuando la base de datos principal no está disponible. El failover se realiza solo en caso de fallo de la base de datos primaria y el failover da como resultado una transición de una base de datos en espera al rol principal. El administrador de la base de datos puede configurar Oracle Data Guard para garantizar que no se pierdan datos.

Varios pasos manuales están implicados en la configuración de Oracle Data Guard, incluidos, entre otros, los siguientes:

  • Preparar la base de datos primaria con los parámetros recomendados
  • Preparar los alias de TNS en los entornos principal y en espera
  • Crear la base de datos física en espera como duplicación de la base de datos primaria
  • Configuración de Data Guard

Estos pasos manuales se documentan ampliamente en varios documentos de Oracle. Este cuaderno de estrategias proporciona un conjunto de secuencias de comandos que puede utilizar para automatizar la mayoría de estas acciones. Estos scripts ayudan a configurar Oracle Data Guard mediante la configuración de una base de datos en espera para una base de datos primaria existente. Los scripts utilizan la función restore from service Oracle Recovery Manager (RMAN) y Oracle Data Guard Broker.

Antes de empezar

Antes de configurar Oracle Data Guard mediante los scripts proporcionados en este documento, revise las siguientes suposiciones y requisitos:

  • Ya existe la base de datos primaria.

  • Los nodos en espera ya existen, con o sin una base de datos existente.

    Nota:

    Si ya hay una base de datos en la ubicación en espera, los scripts la suprimirán antes de volver a crear la base de datos en espera.
  • Hay conectividad mutua entre la base de datos primaria y la base de datos en espera mediante el puerto del listener de la base de datos.

    • Para bases de datos de instancia única, debe haber una conexión bidireccional entre el host de la base de datos primaria y la IP y el puerto del listener de la base de datos en espera.
    • Para las bases de datos de Oracle Real Application Clusters (Oracle RAC), debe haber una conexión bidireccional entre los hosts de base de datos principales y la exploración de la base de datos en espera y las IP y puertos VIP.

    Las secuencias de comandos realizan comprobaciones de conectividad, pero puede utilizar el comando nc -vw 5 -z IP PORT para verificar la conectividad remota.

  • Oracle Automatic Storage Management (Oracle ASM) se utiliza para archivos de datos, archivos de control, redo logs en línea y redo logs de archivo.

    • Para bases de datos de instancia única, el archivo de contraseñas y spfile se pueden ubicar en sistemas de archivos normales o en Oracle ASM.
    • Para las bases de datos de Oracle RAC, el archivo de contraseñas y spfile se deben ubicar en Oracle ASM.
  • Oracle Clusterware gestiona las bases de datos primaria y en espera (se debe instalar Oracle Grid Infrastructure, ya que las topologías única y de Oracle RAC utilizan srvctl).
  • Debido a que se utilizan archivos gestionados por Oracle, los parámetros de base de datos db_create_file_dest, db_create_online_log_dest_1 y db_recovery_file_dest ya se deben definir en la base de datos primaria con la ubicación del grupo de discos de Oracle ASM adecuada (como +DATA o +RECO).
  • El propietario del software del sistema de gestión de bases de datos relacionales (RDBMS) (por ejemplo, usuario oracle) define las variables de entorno de Oracle necesarias (ORACLE_HOME, LD_LIBRARY_PATH, PATH, ORACLE_UNQNAME y ORACLE_SID) en su perfil.
  • Se asume que se utiliza una topología simétrica (es decir, si la base de datos primaria es única, la base de datos en espera es única; si la base de datos primaria es una base de datos Oracle RAC, la base de datos en espera también es una base de datos Oracle RAC).
  • Si las bases de datos son Oracle RAC, se asume que cada Oracle RAC tiene 2 nodos.
  • Los scripts son válidos para configurar una base de datos en espera para una base de datos principal que aún no tiene una base de datos en espera.
  • Los scripts también son válidos para agregar una nueva base de datos en espera adicional a una instancia existente de Oracle Data Guard. Para este escenario, debe utilizar la propiedad ADDITIONAL_STANDBY=YES en el archivo de propiedades. En este caso, la nueva base de datos en espera se agrega a la configuración existente de Data Guard Broker.

Acerca de las Funciones de Script

A continuación, se muestran las funciones de las secuencias de comandos:

  • Los scripts son idempotentes: se pueden volver a ejecutar en caso de errores.
  • Los nombres de usuario del sistema operativo (como oracle y grid) y las carpetas (Database home y Grid home) se pueden configurar.
  • Los usuarios del sistema operativo Oracle y Grid pueden ser el mismo usuario o usuarios diferentes.
  • El cifrado de datos transparente (TDE) para los archivos de base de datos es opcional: los scripts son válidos para ambos casos (TDE y ningún TDE).

    Nota:

    Se realizará una configuración simétrica: si la base de datos primaria utiliza TDE, la base de datos en espera se configurará con TDE; si la base de datos principal no utiliza TDE, la base de datos en espera no utilizará TDE.
  • Están soportados los directorios raíz de Oracle de solo lectura (ROOH). Los scripts están preparados para trabajar automáticamente en entornos con ROOH y con directorios raíz de Oracle "tradicionales".
  • Los scripts son válidos tanto para entornos de Oracle RAC como de instancia única (en una topología simétrica).
  • Los scripts se validan en versiones de RDBMS 12c (12.2), 18c, 19c y 21c.
  • Los scripts se validan en Oracle Cloud Infrastructure (sistemas de base de datos) y en entornos locales.
  • Los scripts se han validado para configurar una instancia de Oracle Data Guard híbrida, donde la base de datos primaria es local y la base de datos en espera es un sistema de base de datos en Oracle Cloud Infrastructure.

Acerca de los Archivos de Comandos

A continuación, se muestran descripciones de los archivos de script utilizados en esta solución:

  • 1_prepare_primary_maa_parameters.sh

    Se conecta a la base de datos primaria y la configura con los parámetros de Oracle Maximum Availability Architecture (MAA) recomendados para Oracle Data Guard. Crea los archivos redo log en espera, define los valores para DB_BLOCK_CHECKSUM, DB_FLASHBACK_RETENTION_TARGET, etc. Este script se ejecuta sólo una vez, si la base de datos primaria es una Oracle Real Application Clusters (Oracle RAC) o una base de datos de instancia única.

  • 2_dataguardit_primary.sh

    Prepara los hosts principales para Oracle Data Guard. Agrega los alias TNS necesarios al archivo tnsnames.ora, comprueba la conectividad con la base de datos en espera remota, configura el cifrado de red si aún no está definido y genera los archivos tar de salida que contienen el archivo de contraseña principal y la cartera de cifrado de datos transparente (TDE) (si se utiliza).

  • create_pw_tar_from_asm_root.sh

    Esta secuencia de comandos no siempre es necesaria. Solo es necesario cuando el archivo de contraseña principal se almacena en Oracle Automatic Storage Management (Oracle ASM). Crea un archivo tar de salida con el archivo de contraseñas.

  • 3_dataguardit_standby_root.sh

    Prepara los nuevos hosts en espera y crea la base de datos en espera mediante la función restore from service Oracle Recovery Manager (RMAN) y el broker de Oracle Data Guard. Si hay una base de datos existente en estos hosts (ya sea una base de datos de trabajo o como resultado de un intento fallido de ejecución de script anterior), los scripts la suprimirán antes de volver a crear la nueva base de datos como base de datos en espera.

  • DG_properties.ini

    Este es el archivo de propiedades que se debe personalizar con los valores específicos del entorno. Se utiliza en todos los scripts, tanto en la base de datos primaria como en la base de datos en espera.

Acerca de los productos y roles necesarios

Esta solución requiere los siguientes roles para los sistemas de base de datos primaria y en espera:

Nombre de producto: Rol Necesario para...
Oracle Database: sys ejecutar todos los scripts
Host de Oracle Database (primario): usuario del sistema operativo oracle con permisos de ejecución ejecutar los siguientes archivos de comandos:
  • 1_prepare_primary_maa_parameters.sh
  • 2_dataguardit_primary.sh
Host de Oracle Database (primario): root ejecute el siguiente script cuando el archivo de contraseña principal esté almacenado en ASM: create_pw_tar_from_asm_root.sh
Host de Oracle Database (secundario): root ejecute el siguiente script:
  • 3_dataguardit_standby_root.sh

Consulte Productos, soluciones y servicios de Oracle para obtener lo que necesita.