Skip to main content
NetApp database solutions
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Oracle HA/DR automatizado no AWS FSx ONTAP

Colaboradores kevin-hoke

Equipe de Engenharia de Soluções NetApp

Esta solução fornece um kit de ferramentas de automação baseado em Ansible para configurar o Oracle Database High Availability and Disaster Recovery (HA/DR) com AWS FSx ONTAP como armazenamento de banco de dados Oracle e instâncias EC2 como instâncias de computação na AWS.

Propósito

Este kit de ferramentas automatiza as tarefas de configuração e gerenciamento de um ambiente de alta disponibilidade e recuperação de desastres (HR/DR) para banco de dados Oracle implantado na nuvem AWS com armazenamento FSx ONTAP e instâncias de computação EC2.

Esta solução aborda os seguintes casos de uso:

  • Configurar host de destino HA/DR - configuração do kernel, configuração do Oracle para corresponder ao host do servidor de origem.

  • Configurar FSx ONTAP - peering de cluster, peering de vserver, configuração de relacionamento snapmirror de volumes Oracle da origem ao destino.

  • Fazer backup dos dados do banco de dados Oracle via snapshot - executar no crontab

  • Fazer backup do log de arquivo do banco de dados Oracle via snapshot - executar no crontab

  • Execute failover e recuperação no host HA/DR - teste e valide o ambiente HA/DR

  • Executar ressincronização após teste de failover - restabelecer o relacionamento snapmirror dos volumes do banco de dados no modo HA/DR

Público

Esta solução é destinada às seguintes pessoas:

  • Um DBA que configurou o banco de dados Oracle na AWS para alta disponibilidade, proteção de dados e recuperação de desastres.

  • Um arquiteto de soluções de banco de dados interessado em soluções Oracle HA/DR em nível de armazenamento na nuvem AWS.

  • Um administrador de armazenamento que gerencia o armazenamento AWS FSx ONTAP que oferece suporte a bancos de dados Oracle.

  • Um proprietário de aplicativo que gosta de configurar o banco de dados Oracle para HA/DR no ambiente AWS FSx/EC2.

Licença

Ao acessar, baixar, instalar ou usar o conteúdo deste repositório GitHub, você concorda com os termos da Licença estabelecida em"Arquivo de licença" .

Observação Há certas restrições quanto à produção e/ou compartilhamento de quaisquer trabalhos derivados do conteúdo deste repositório do GitHub. Certifique-se de ler os termos da Licença antes de usar o conteúdo. Se você não concordar com todos os termos, não acesse, baixe ou use o conteúdo deste repositório.

Implantação da solução

Pré-requisitos para implantação

Details

A implantação requer os seguintes pré-requisitos.

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

Baixe o kit de ferramentas

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

Configuração de variáveis globais

Details

Os manuais do Ansible são orientados por variáveis. Um exemplo de arquivo de variável global fsx_vars_example.yml está incluído para demonstrar a configuração típica. A seguir estão as principais considerações:

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.

Configuração de variáveis de host

Details

Variáveis de host são definidas no diretório host_vars chamado {{ host_name }}.yml. Um exemplo de arquivo de variável de host host_name.yml está incluído para demonstrar a configuração típica. A seguir estão as principais considerações:

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.

Configuração do arquivo host do servidor de banco de dados

Details

A instância do AWS EC2 usa o endereço IP para nomenclatura de host por padrão. Se você usar nomes diferentes no arquivo hosts para o Ansible, configure a resolução de nomenclatura de host no arquivo /etc/hosts para os servidores de origem e de destino. Segue um exemplo.

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

Execução do manual de instruções - executado em sequência

Details
  1. Instalar os pré-requisitos do controlador Ansible.

    ansible-playbook -i hosts requirements.yml
    ansible-galaxy collection install -r collections/requirements.yml --force
  2. Configurar instância de banco de dados 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 o relacionamento snapmirror do FSx ONTAP entre os volumes de banco de dados de origem e de destino.

    ansible-playbook -i hosts ontap_setup.yml -u ec2-user --private-key db2.pem -e @vars/fsx_vars.yml
  4. Faça backup de volumes de dados do banco de dados Oracle por meio de snapshot do 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. Faça backup de volumes de log de arquivo do banco de dados Oracle por meio de snapshot do 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. Execute failover e recupere o banco de dados Oracle na instância de banco de dados EC2 de destino - teste e valide a configuração de HA/DR.

    ansible-playbook -i hosts ora_recovery.yml -u ec2-user --private-key db2.pem -e @vars/fsx_vars.yml
  7. Execute a ressincronização após o teste de failover - restabeleça o relacionamento snapmirror dos volumes do banco de dados no modo de replicação.

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

Onde encontrar informações adicionais

Para saber mais sobre a automação da solução NetApp , consulte o seguinte site"Automação de soluções NetApp "