Skip to main content
NetApp database solutions
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Oracle HA/DR automatizzato in AWS FSx ONTAP

Collaboratori kevin-hoke

Team di ingegneria delle soluzioni NetApp

Questa soluzione fornisce un toolkit di automazione basato su Ansible per la configurazione dell'alta disponibilità e del ripristino di emergenza (HA/DR) del database Oracle con AWS FSx ONTAP come storage del database Oracle e istanze EC2 come istanze di elaborazione in AWS.

Scopo

Questo toolkit automatizza le attività di configurazione e gestione di un ambiente ad alta disponibilità e ripristino di emergenza (HR/DR) per il database Oracle distribuito nel cloud AWS con storage FSx ONTAP e istanze di elaborazione EC2.

Questa soluzione affronta i seguenti casi d'uso:

  • Configurazione dell'host di destinazione HA/DR: configurazione del kernel, configurazione di Oracle per abbinarla all'host del server di origine.

  • Configurazione di FSx ONTAP : peering del cluster, peering del server virtuale, configurazione della relazione snapmirror dei volumi Oracle dall'origine alla destinazione.

  • Backup dei dati del database Oracle tramite snapshot - esecuzione off crontab

  • Backup del registro di archivio del database Oracle tramite snapshot - esecuzione da crontab

  • Eseguire il failover e il ripristino sull'host HA/DR: testare e convalidare l'ambiente HA/DR

  • Esegui la risincronizzazione dopo il test di failover: ripristina la relazione snapmirror dei volumi del database in modalità HA/DR

Pubblico

Questa soluzione è destinata alle seguenti persone:

  • Un DBA che ha configurato il database Oracle in AWS per garantire elevata disponibilità, protezione dei dati e ripristino di emergenza.

  • Un architetto di soluzioni di database interessato alla soluzione Oracle HA/DR a livello di storage nel cloud AWS.

  • Un amministratore di storage che gestisce lo storage AWS FSx ONTAP che supporta i database Oracle.

  • Un proprietario di applicazioni che desidera supportare il database Oracle per HA/DR nell'ambiente AWS FSx/EC2.

Licenza

Accedendo, scaricando, installando o utilizzando il contenuto di questo repository GitHub, accetti i termini della licenza stabiliti in"File di licenza" .

Nota Esistono alcune restrizioni relative alla produzione e/o alla condivisione di lavori derivati dai contenuti di questo repository GitHub. Prima di utilizzare il contenuto, assicurati di leggere i termini della licenza. Se non accetti tutti i termini, non accedere, scaricare o utilizzare i contenuti di questo repository.

Distribuzione della soluzione

Prerequisiti per la distribuzione

Details

Per la distribuzione sono richiesti i seguenti prerequisiti.

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

Scarica il toolkit

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

Configurazione delle variabili globali

Details

I playbook di Ansible sono basati su variabili. Per illustrare la configurazione tipica è incluso un file di variabili globali di esempio fsx_vars_example.yml. Di seguito sono riportate alcune considerazioni chiave:

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.

Configurazione delle variabili host

Details

Le variabili host sono definite nella directory host_vars denominata {{ host_name }}.yml. Per illustrare la configurazione tipica è incluso un file di variabili host di esempio host_name.yml. Di seguito sono riportate alcune considerazioni chiave:

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.

Configurazione del file host del server DB

Details

Per impostazione predefinita, l'istanza AWS EC2 utilizza l'indirizzo IP per la denominazione host. Se si utilizza un nome diverso nel file hosts per Ansible, impostare la risoluzione dei nomi host nel file /etc/hosts sia per il server di origine che per quello di destinazione. Di seguito un esempio.

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

Esecuzione del playbook: eseguita in sequenza

Details
  1. Installare i prerequisiti del controller Ansible.

    ansible-playbook -i hosts requirements.yml
    ansible-galaxy collection install -r collections/requirements.yml --force
  2. Imposta l'istanza di destinazione del database EC2.

    ansible-playbook -i hosts ora_dr_setup.yml -u ec2-user --private-key db2.pem -e @vars/fsx_vars.yml
  3. Imposta la relazione snapmirror FSx ONTAP tra i volumi del database di origine e di destinazione.

    ansible-playbook -i hosts ontap_setup.yml -u ec2-user --private-key db2.pem -e @vars/fsx_vars.yml
  4. Eseguire il backup dei volumi di dati del database Oracle tramite snapshot da 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. Eseguire il backup dei volumi di registro dell'archivio del database Oracle tramite snapshot da 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. Eseguire il failover e ripristinare il database Oracle sull'istanza di destinazione del database EC2: testare e convalidare la configurazione HA/DR.

    ansible-playbook -i hosts ora_recovery.yml -u ec2-user --private-key db2.pem -e @vars/fsx_vars.yml
  7. Esegui la risincronizzazione dopo il test di failover: ristabilisci la relazione snapmirror dei volumi del database in modalità replica.

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

Dove trovare ulteriori informazioni

Per saperne di più sull'automazione della soluzione NetApp , consultare il seguente sito Web"Automazione delle soluzioni NetApp "