Skip to main content
NetApp database solutions
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Alta disponibilidad y recuperación ante desastres (HA/DR) automatizada de Oracle en AWS FSx ONTAP

Colaboradores kevin-hoke

Equipo de ingeniería de soluciones de NetApp

Esta solución proporciona un kit de herramientas de automatización basado en Ansible para configurar la alta disponibilidad y recuperación ante desastres (HA/DR) de la base de datos Oracle con AWS FSx ONTAP como almacenamiento de la base de datos Oracle e instancias EC2 como instancias de cómputo en AWS.

Objetivo

Este kit de herramientas automatiza las tareas de configuración y administración de un entorno de alta disponibilidad y recuperación ante desastres (HR/DR) para una base de datos Oracle implementada en la nube de AWS con almacenamiento FSx ONTAP e instancias de cómputo EC2.

Esta solución aborda los siguientes casos de uso:

  • Configurar el host de destino de HA/DR: configuración del kernel, configuración de Oracle para que coincida con el host del servidor de origen.

  • Configurar FSx ONTAP : emparejamiento de clúster, emparejamiento vserver, configuración de la relación snapmirror de volúmenes Oracle desde el origen al destino.

  • Realizar una copia de seguridad de los datos de la base de datos Oracle mediante una instantánea: ejecutar desde crontab

  • Copia de seguridad del registro de archivo de la base de datos de Oracle mediante una instantánea: ejecutar desde crontab

  • Ejecutar conmutación por error y recuperación en el host de HA/DR: probar y validar el entorno de HA/DR

  • Ejecutar la resincronización después de la prueba de conmutación por error: restablecer la relación entre los volúmenes de la base de datos y SnapMirror en modo HA/DR

Audiencia

Esta solución está destinada a las siguientes personas:

  • Un administrador de bases de datos que configuró una base de datos Oracle en AWS para alta disponibilidad, protección de datos y recuperación ante desastres.

  • Un arquitecto de soluciones de bases de datos que está interesado en la solución Oracle HA/DR a nivel de almacenamiento en la nube de AWS.

  • Un administrador de almacenamiento que administra el almacenamiento de AWS FSx ONTAP que admite bases de datos de Oracle.

  • Propietario de una aplicación a quien le gusta crear una base de datos Oracle para HA/DR en un entorno AWS FSx/EC2.

Licencia

Al acceder, descargar, instalar o utilizar el contenido de este repositorio de GitHub, usted acepta los términos de la Licencia establecidos en"Archivo de licencia" .

Nota Existen ciertas restricciones en torno a la producción y/o intercambio de cualquier trabajo derivado del contenido de este repositorio de GitHub. Asegúrese de leer los términos de la Licencia antes de utilizar el contenido. Si no está de acuerdo con todos los términos, no acceda, descargue ni utilice el contenido de este repositorio.

Implementación de la solución

Requisitos previos para la implementación

Details

La implementación requiere los siguientes requisitos previos.

Ansible v.2.10 and higher
ONTAP collection 21.19.1
Python 3
Python libraries:
  netapp-lib
  xmltodict
  jmespath
AWS FSx storage as is available
AWS EC2 Instance
  RHEL 7/8, Oracle Linux 7/8
  Network interfaces for NFS, public (internet) and optional management
  Existing Oracle environment on source, and the equivalent Linux operating system at the target

Descargar el kit de herramientas

Details
git clone https://github.com/NetApp/na_ora_hadr_failover_resync.git

Configuración de variables globales

Details

Los playbooks de Ansible están impulsados por variables. Se incluye un archivo de variable global de ejemplo fsx_vars_example.yml para demostrar la configuración típica. A continuación se presentan algunas consideraciones clave:

ONTAP - retrieve FSx storage parameters using AWS FSx console for both source and target FSx clusters.
  cluster name: source/destination
  cluster management IP: source/destination
  inter-cluster IP: source/destination
  vserver name: source/destination
  vserver management IP: source/destination
  NFS lifs: source/destination
  cluster credentials: fsxadmin and vsadmin pwd to be updated in roles/ontap_setup/defaults/main.yml file
Oracle database volumes - they should have been created from AWS FSx console, volume naming should follow strictly with following standard:
  Oracle binary: {{ host_name }}_bin, generally one lun/volume
  Oracle data: {{ host_name }}_data, can be multiple luns/volume, add additional line for each additional lun/volume in variable such as {{ host_name }}_data_01, {{ host_name }}_data_02 ...
  Oracle log: {{ host_name }}_log, can be multiple luns/volume, add additional line for each additional lun/volume in variable such as {{ host_name }}_log_01, {{ host_name }}_log_02 ...
  host_name: as defined in hosts file in root directory, the code is written to be specifically matched up with host name defined in host file.
Linux and DB specific global variables - keep it as is.
  Enter redhat subscription if you have one, otherwise leave it black.

Configuración de variables del host

Details

Las variables de host se definen en el directorio host_vars llamado {{ host_name }}.yml. Se incluye un archivo de variable de host de ejemplo host_name.yml para demostrar una configuración típica. A continuación se presentan algunas consideraciones clave:

Oracle - define host specific variables when deploying Oracle in multiple hosts concurrently
  ansible_host: IP address of database server host
  log_archive_mode: enable archive log archiving (true) or not (false)
  oracle_sid: Oracle instance identifier
  pdb: Oracle in a container configuration, name pdb_name string and number of pdbs (Oracle allows 3 pdbs free of multitenant license fee)
  listener_port: Oracle listener port, default 1521
  memory_limit: set Oracle SGA size, normally up to 75% RAM
  host_datastores_nfs: combining of all Oracle volumes (binary, data, and log) as defined in global vars file. If multi luns/volumes, keep exactly the same number of luns/volumes in host_var file
Linux - define host specific variables at Linux level
  hugepages_nr: set hugepage for large DB with large SGA for performance
  swap_blocks: add swap space to EC2 instance. If swap exist, it will be ignored.

Configuración del archivo host del servidor de base de datos

Details

La instancia de AWS EC2 usa la dirección IP para nombrar el host de manera predeterminada. Si usa un nombre diferente en el archivo de hosts para Ansible, configure la resolución de nombres de host en el archivo /etc/hosts para los servidores de origen y de destino. A continuación se muestra un ejemplo.

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.30.15.96 db1
172.30.15.107 db2

Ejecución del libro de jugadas: ejecutado en secuencia

Details
  1. Instalar los requisitos previos del controlador Ansible.

    ansible-playbook -i hosts requirements.yml
    ansible-galaxy collection install -r collections/requirements.yml --force
  2. Configurar la instancia de base de datos EC2 de destino.

    ansible-playbook -i hosts ora_dr_setup.yml -u ec2-user --private-key db2.pem -e @vars/fsx_vars.yml
  3. Configurar la relación snapmirror de FSx ONTAP entre los volúmenes de base de datos de origen y destino.

    ansible-playbook -i hosts ontap_setup.yml -u ec2-user --private-key db2.pem -e @vars/fsx_vars.yml
  4. Realice una copia de seguridad de los volúmenes de datos de la base de datos Oracle mediante una instantánea desde crontab.

    10 * * * * cd /home/admin/na_ora_hadr_failover_resync && /usr/bin/ansible-playbook -i hosts ora_replication_cg.yml -u ec2-user --private-key db1.pem -e @vars/fsx_vars.yml >> logs/snap_data_`date +"%Y-%m%d-%H%M%S"`.log 2>&1
  5. Realice una copia de seguridad de los volúmenes de registro del archivo de la base de datos de Oracle mediante una instantánea desde crontab.

    0,20,30,40,50 * * * * cd /home/admin/na_ora_hadr_failover_resync && /usr/bin/ansible-playbook -i hosts ora_replication_logs.yml -u ec2-user --private-key db1.pem -e @vars/fsx_vars.yml >> logs/snap_log_`date +"%Y-%m%d-%H%M%S"`.log 2>&1
  6. Ejecute la conmutación por error y recupere la base de datos Oracle en la instancia EC2 DB de destino: pruebe y valide la configuración de HA/DR.

    ansible-playbook -i hosts ora_recovery.yml -u ec2-user --private-key db2.pem -e @vars/fsx_vars.yml
  7. Ejecutar la resincronización después de la prueba de conmutación por error: restablecer la relación de los volúmenes de base de datos con SnapMirror en el modo de replicación.

    ansible-playbook -i hosts ontap_ora_resync.yml -u ec2-user --private-key db2.pem -e @vars/fsx_vars.yml

Dónde encontrar información adicional

Para obtener más información sobre la automatización de soluciones de NetApp , consulte el siguiente sitio web"Automatización de soluciones de NetApp "