Skip to main content
NetApp 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.

TR-4981: Redução de custos do Oracle ative Data Guard com o Amazon FSX ONTAP

Colaboradores

NetApp

Essa solução fornece visão geral e detalhes para configurar o Oracle Data Guard usando o AWS FSX ONTAP como armazenamento de banco de dados Oracle para reduzir o custo operacional e licenciamento da solução de HA/DR do Oracle Data Guard na AWS.

Finalidade

O Oracle Data Guard garante alta disponibilidade, proteção de dados e recuperação de desastres para dados empresariais em um banco de dados primário e configuração de replicação de banco de dados em espera. O Oracle ative Data Guard capacita os usuários a acessar bancos de dados em espera enquanto a replicação de dados está ativa do banco de dados primário para bancos de dados em espera. O Data Guard é um recurso do Oracle Database Enterprise Edition. Não requer licenciamento separado. Por outro lado, o ative Data Guard é uma opção do Oracle Database Enterprise Edition, portanto, requer licenciamento separado. Vários bancos de dados em espera podem receber replicação de dados de um banco de dados primário na configuração do ative Data Guard. No entanto, cada banco de dados em espera adicional requer uma licença do ative Data Guard e armazenamento extra como o tamanho do banco de dados principal. Os custos operacionais somam-se rapidamente.

Se você está interessado em reduzir o custo da operação do banco de dados Oracle e está planejando configurar um ative Data Guard na AWS, você deve considerar uma alternativa. Em vez do ative Data Guard, use o Data Guard para replicar do banco de dados primário para um único banco de dados físico de espera no armazenamento do Amazon FSX ONTAP. Posteriormente, várias cópias deste banco de dados em espera podem ser clonadas e abertas para acesso de leitura/gravação para atender a muitos outros casos de uso, como relatórios, desenvolvimento, teste, etc. os resultados da rede fornecem efetivamente funcionalidades do ative Data Guard, eliminando a licença do ative Data Guard e o custo de armazenamento extra para cada banco de dados em espera adicional. Nesta documentação, demonstramos como configurar um Oracle Data Guard com seu banco de dados principal existente na AWS e colocar banco de dados de espera físico no armazenamento do Amazon FSX ONTAP. O backup do banco de dados em espera é feito via snapshot e clonado para acesso de leitura/gravação para casos de uso, conforme desejado.

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

  • Entre um banco de dados principal em qualquer armazenamento na AWS e um banco de dados de reserva no armazenamento do Amazon FSX ONTAP.

  • Clone o banco de dados de reserva enquanto fechado para replicação de dados para atender a casos de uso, como relatórios, desenvolvimento, teste etc.

Público-alvo

Esta solução destina-se às seguintes pessoas:

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

  • Um arquiteto de solução de banco de dados interessado na configuração do Oracle ative Data Guard na nuvem da AWS.

  • Um administrador de armazenamento que gerencia o armazenamento do AWS FSX ONTAP que oferece suporte ao Oracle Data Guard.

  • Proprietário de um aplicativo que gosta de levantar o Oracle Data Guard no ambiente AWS FSX/EC2.

Ambiente de teste e validação de soluções

O teste e a validação dessa solução foram realizados em um ambiente de laboratório do AWS FSX ONTAP e EC2 que pode não corresponder ao ambiente de implantação final. Para obter mais informações, consulte a Fatores-chave para consideração da implantaçãoseção .

Arquitetura

Esta imagem fornece uma imagem detalhada da implementação do Oracle Data Guard na AWS com o FSX ONTAP.

Componentes de hardware e software

Hardware

FSX ONTAP armazenamento

Versão atual oferecida pela AWS

Um cluster do FSX HA na mesma VPC e zona de disponibilidade

EC2 instância para computação

t2.xlarge/4vCPU/16G

Três instâncias EC2 T2 xlarge EC2, uma como servidor de banco de dados primário, uma como servidor de banco de dados de reserva e a terceira como um servidor de banco de dados clone

Software

RedHat Linux

RHEL-8,6.0_HVM-20220503-x86_64-2-Hourly2-GP2

Implantou a assinatura RedHat para testes

Oracle Grid Infrastructure

Versão 19,18

Aplicado patch RU p34762026_190000_Linux-x86-64.zip

Banco de dados Oracle

Versão 19,18

Aplicado patch RU p34765931_190000_Linux-x86-64.zip

Oracle OPatch

Versão 12.2.0.1.36

Último patch p6880880_190000_Linux-x86-64.zip

Configuração do Oracle Data Guard com configuração hipotética de NY a LA DR

Base de dados

DB_UNIQUE_NAME

Nome do serviço Oracle Net

Primário

db1_NY

db1_NY.demo.NetApp.com

Modo de espera físico

db1_LA

db1_LA.demo.NetApp.com

Fatores-chave para consideração da implantação

  • Como funciona o Oracle Standby Database FlexClone. O AWS FSX ONTAP FlexClone fornece cópias compartilhadas dos mesmos volumes de banco de dados em espera que são graváveis. As cópias dos volumes são, na verdade, ponteiros que ligam de volta aos blocos de dados originais até que uma nova gravação seja iniciada no clone. Em seguida, o ONTAP aloca novos blocos de storage para as novas gravações. Qualquer iOS lido é atendido por blocos de dados originais sob replicação ativa. Assim, o clone é muito eficiente em armazenamento que pode ser usado para muitos outros casos de uso com alocação de armazenamento de novo mínima e incremental para novos iOS de gravação. Isso proporciona uma enorme economia de custos de armazenamento, reduzindo substancialmente o espaço físico do armazenamento do ative Data Guard. A NetApp recomenda minimizar as atividades do FlexClone no caso de transferência do banco de dados do armazenamento primário para o armazenamento de reserva do FSX, a fim de manter o desempenho da Oracle em alto nível.

  • Requisitos de software Oracle. Em geral, um banco de dados de espera físico deve ter a mesma versão inicial do banco de dados que o banco de dados principal, incluindo exceções de conjunto de patches (PSEs), atualizações críticas de patches (CPUs) e atualizações de conjunto de patches (PSUs), a menos que um processo de aplicação de patch em espera do Oracle Data Guard esteja em andamento (conforme descrito em My Oracle Support nota 1265700,1 em "support.oracle.com"

  • Considerações de estrutura de diretório de base de dados em espera. Se possível, os arquivos de dados, arquivos de log e arquivos de controle nos sistemas primário e de espera devem ter os mesmos nomes e nomes de caminho e usar convenções de nomenclatura de arquitetura flexível ideal (OFA). Os diretórios de arquivamento no banco de dados de espera também devem ser idênticos entre sites, incluindo tamanho e estrutura. Essa estratégia permite que outras operações, como backups, switchovers e failovers, executem o mesmo conjunto de etapas, reduzindo a complexidade da manutenção.

  • Force Logging Mode. Para proteger contra gravações diretas não registradas no banco de dados principal que não podem ser propagadas para o banco de dados de espera, ative O REGISTRO DE FORÇA no banco de dados primário antes de executar backups de arquivos de dados para criação em espera.

  • Gerenciamento de armazenamento de banco de dados. Para simplificar a operação, a Oracle recomenda que, quando você configurar o Oracle Automatic Storage Management (Oracle ASM) e o Oracle Managed Files (OMF) em uma configuração do Oracle Data Guard, você o configure simetricamente no(s) banco(s) de dados principal(s) e de espera.

  • EC2 instâncias de computação. Nesses testes e validações, usamos uma instância AWS EC2 T2.xlarge como instância de computação de banco de dados Oracle. A NetApp recomenda o uso de uma instância M5 tipo EC2 como instância de computação para Oracle na implantação de produção, pois ela é otimizada para a carga de trabalho de banco de dados. Você precisa dimensionar a instância EC2 adequadamente para o número de vCPUs e a quantidade de RAM com base nos requisitos reais de carga de trabalho.

  • FSX storage HA clusters implantação de uma ou várias zonas. Nesses testes e validações, implantamos um cluster do FSX HA em uma única zona de disponibilidade da AWS. Para implantação de produção, a NetApp recomenda a implantação de um par de HA do FSX em duas zonas de disponibilidade diferentes. Um cluster FSX é sempre provisionado em um par de HA que é sincronizado espelhado em um par de sistemas de arquivos ativo-passivo para fornecer redundância no nível de armazenamento. A implantação de várias zonas aumenta ainda mais a alta disponibilidade em caso de falha em uma única zona da AWS.

  • * Dimensionamento de cluster de armazenamento FSX.* Um sistema de arquivos de armazenamento Amazon FSX ONTAP oferece até 160.000 IOPS SSD bruto, taxa de transferência de até 4Gbps Gbps e capacidade máxima de 192TiB TB. No entanto, você pode dimensionar o cluster em termos de IOPS provisionadas, taxa de transferência e limite de storage (mínimo de 1.024 GiB) com base em seus requisitos reais no momento da implantação. A capacidade pode ser ajustada dinamicamente em tempo real, sem afetar a disponibilidade da aplicação.

Implantação de solução

Supõe-se que você já tenha seu banco de dados Oracle primário implantado no ambiente AWS EC2 em uma VPC como ponto de partida para a configuração do Data Guard. O banco de dados principal é implantado usando o Oracle ASM para gerenciamento de storage. Dois grupos de discos ASM - DADOS e LOGS são criados para arquivos de dados Oracle, arquivos de log e arquivo de controle etc. para obter detalhes sobre a implantação do Oracle na AWS com ASM, consulte os seguintes relatórios técnicos para obter ajuda.

Seu banco de dados principal da Oracle pode ser executado em um FSX ONTAP ou qualquer outro armazenamento de opções dentro do ecossistema AWS EC2. A seção a seguir fornece procedimentos de implantação passo a passo para configurar o Oracle Data Guard entre uma instância de banco de dados EC2 primário com armazenamento ASM para uma instância de banco de dados EC2 em espera com armazenamento ASM.

Pré-requisitos para implantação

Details

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

  1. Uma conta da AWS foi configurada e os segmentos de rede e VPC necessários foram criados na sua conta da AWS.

  2. No console do AWS EC2, você precisa implantar no mínimo três instâncias EC2 do Linux, uma como instância principal do Oracle DB, uma como instância de banco de dados Oracle de reserva e uma instância de banco de dados de destino clone para relatórios, desenvolvimento e teste, etc. consulte o diagrama da arquitetura na seção anterior para obter mais detalhes sobre a configuração do ambiente. Consulte também a AWS "Guia do Usuário para instâncias Linux" para obter mais informações.

  3. No console do AWS EC2, implante clusters de HA de armazenamento do Amazon FSX ONTAP para hospedar volumes Oracle que armazenam o banco de dados de reserva do Oracle. Se você não estiver familiarizado com a implantação do FSX storage, consulte a documentação "Criando sistemas de arquivos FSX ONTAP" para obter instruções passo a passo.

  4. As etapas 2 e 3 podem ser executadas usando o seguinte kit de ferramentas de automação Terraform, que cria uma instância EC2 chamada ora_01 e um sistema de arquivos FSX fsx_01 chamado . Revise as instruções cuidadosamente e altere as variáveis para se adequar ao seu ambiente antes da execução. O modelo pode ser facilmente revisado para seus próprios requisitos de implantação.

    git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
Observação Certifique-se de que você alocou pelo MENOS 50g em volume raiz de instância EC2 para ter espaço suficiente para colocar arquivos de instalação Oracle em estágio.

Prepare o banco de dados principal para o Data Guard

Details

Nesta demonstração, configuramos um banco de dados Oracle primário chamado db1 na instância de banco de dados EC2 principal com dois grupos de discos ASM em configuração de reinicialização autônoma com arquivos de dados no grupo de discos ASM e área de recuperação flash em LOGS do grupo de discos ASM. A seguir ilustra os procedimentos detalhados para configurar o banco de dados primário para o Data Guard. Todas as etapas devem ser executadas como proprietário do banco de dados - usuário oracle.

  1. Configuração primária do banco de dados db1 na instância primária de banco de dados EC2 ip-172-30-15-45. Os grupos de discos ASM podem estar em qualquer tipo de armazenamento dentro do ecossistema EC2.

    [oracle@ip-172-30-15-45 ~]$ cat /etc/oratab
    
    # This file is used by ORACLE utilities.  It is created by root.sh
    # and updated by either Database Configuration Assistant while creating
    # a database or ASM Configuration Assistant while creating ASM instance.
    
    # A colon, ':', is used as the field terminator.  A new line terminates
    # the entry.  Lines beginning with a pound sign, '#', are comments.
    #
    # Entries are of the form:
    #   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
    #
    # The first and second fields are the system identifier and home
    # directory of the database respectively.  The third field indicates
    # to the dbstart utility that the database should , "Y", or should not,
    # "N", be brought up at system boot time.
    #
    # Multiple entries with the same $ORACLE_SID are not allowed.
    #
    #
    +ASM:/u01/app/oracle/product/19.0.0/grid:N
    db1:/u01/app/oracle/product/19.0.0/db1:N
    
    [oracle@ip-172-30-15-45 ~]$ /u01/app/oracle/product/19.0.0/grid/bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       ip-172-30-15-45          STABLE
    ora.LISTENER.lsnr
                   ONLINE  ONLINE       ip-172-30-15-45          STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       ip-172-30-15-45          STABLE
    ora.asm
                   ONLINE  ONLINE       ip-172-30-15-45          Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      ip-172-30-15-45          STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        ONLINE  ONLINE       ip-172-30-15-45          STABLE
    ora.db1.db
          1        ONLINE  ONLINE       ip-172-30-15-45          Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /db1,STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.driver.afd
          1        ONLINE  ONLINE       ip-172-30-15-45          STABLE
    ora.evmd
          1        ONLINE  ONLINE       ip-172-30-15-45          STABLE
    --------------------------------------------------------------------------------
  2. A partir do sqlplus, ative o registo forçado no primário.

    alter database force logging;
  3. De sqlplus, ative flashback no primário. Flashback permite restabelecer facilmente o banco de dados principal como um standby após um failover.

    alter database flashback on;
  4. Configurar a autenticação de transporte de refazer usando o arquivo de senha Oracle - crie um arquivo pwd no diretório principal usando o utilitário orapwd se não estiver definido e copie para o banco de dados de reserva.

  5. Crie logs de refazer em espera no banco de dados principal com o mesmo tamanho do arquivo de log on-line atual. Grupos de log são mais um do que grupos de arquivos de log on-line. O banco de dados principal pode então fazer a transição rápida para a função de espera e começar a receber os dados de refazer, se necessário.

    alter database add standby logfile thread 1 size 200M;
    Validate after standby logs addition:
    
    SQL> select group#, type, member from v$logfile;
    
        GROUP# TYPE    MEMBER
    ---------- ------- ------------------------------------------------------------
             3 ONLINE  +DATA/DB1/ONLINELOG/group_3.264.1145821513
             2 ONLINE  +DATA/DB1/ONLINELOG/group_2.263.1145821513
             1 ONLINE  +DATA/DB1/ONLINELOG/group_1.262.1145821513
             4 STANDBY +DATA/DB1/ONLINELOG/group_4.286.1146082751
             4 STANDBY +LOGS/DB1/ONLINELOG/group_4.258.1146082753
             5 STANDBY +DATA/DB1/ONLINELOG/group_5.287.1146082819
             5 STANDBY +LOGS/DB1/ONLINELOG/group_5.260.1146082821
             6 STANDBY +DATA/DB1/ONLINELOG/group_6.288.1146082825
             6 STANDBY +LOGS/DB1/ONLINELOG/group_6.261.1146082827
             7 STANDBY +DATA/DB1/ONLINELOG/group_7.289.1146082835
             7 STANDBY +LOGS/DB1/ONLINELOG/group_7.262.1146082835
    
    11 rows selected.
  6. A partir do sqlplus, crie um arquivo pfile a partir do spfile para edição.

    create pfile='/home/oracle/initdb1.ora' from spfile;
  7. Revise o arquivo pfile e adicione os seguintes parâmetros.

    DB_NAME=db1
    DB_UNIQUE_NAME=db1_NY
    LOG_ARCHIVE_CONFIG='DG_CONFIG=(db1_NY,db1_LA)'
    LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=db1_NY'
    LOG_ARCHIVE_DEST_2='SERVICE=db1_LA ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=db1_LA'
    REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
    FAL_SERVER=db1_LA
    STANDBY_FILE_MANAGEMENT=AUTO
  8. A partir do sqlplus, crie spfile no diretório de DADOS ASM a partir do arquivo pfile revisado no diretório /home/oracle.

    create spfile='+DATA' from pfile='/home/oracle/initdb1.ora';
  9. Localize o spfile recém-criado no grupo de discos de DADOS (usando o utilitário asmcmd, se necessário). Use srvctl para modificar a grade para iniciar o banco de dados a partir de um novo spfile, como mostrado abaixo.

    [oracle@ip-172-30-15-45 db1]$ srvctl config database -d db1
    Database unique name: db1
    Database name: db1
    Oracle home: /u01/app/oracle/product/19.0.0/db1
    Oracle user: oracle
    Spfile: +DATA/DB1/PARAMETERFILE/spfile.270.1145822903
    Password file:
    Domain: demo.netapp.com
    Start options: open
    Stop options: immediate
    Database role: PRIMARY
    Management policy: AUTOMATIC
    Disk Groups: DATA
    Services:
    OSDBA group:
    OSOPER group:
    Database instance: db1
    [oracle@ip-172-30-15-45 db1]$ srvctl modify database -d db1 -spfile +DATA/DB1/PARAMETERFILE/spfiledb1.ora
    [oracle@ip-172-30-15-45 db1]$ srvctl config database -d db1
    Database unique name: db1
    Database name: db1
    Oracle home: /u01/app/oracle/product/19.0.0/db1
    Oracle user: oracle
    Spfile: +DATA/DB1/PARAMETERFILE/spfiledb1.ora
    Password file:
    Domain: demo.netapp.com
    Start options: open
    Stop options: immediate
    Database role: PRIMARY
    Management policy: AUTOMATIC
    Disk Groups: DATA
    Services:
    OSDBA group:
    OSOPER group:
    Database instance: db1
  10. Modifique tnsnames.ora para adicionar dB_unique_name para resolução de nome.

    # tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.0.0/db1/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    
    db1_NY =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-45.ec2.internal)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SID = db1)
        )
      )
    
    db1_LA =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-67.ec2.internal)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SID = db1)
        )
      )
    
    LISTENER_DB1 =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-45.ec2.internal)(PORT = 1521))
  11. Adicione o nome do serviço de guarda de dados db1_NY_DGMGRL.demo.NetApp para o banco de dados primário ao arquivo listener.ora.

#Backup file is  /u01/app/oracle/crsdata/ip-172-30-15-45/output/listener.ora.bak.ip-172-30-15-45.oracle line added by Agent
# listener.ora Network Configuration File: /u01/app/oracle/product/19.0.0/grid/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-45.ec2.internal)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = db1_NY_DGMGRL.demo.netapp.com)
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/db1)
      (SID_NAME = db1)
    )
  )

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON              # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER=ON            # line added by Agent
  1. Encerre e reinicie o banco de dados com srvctl e valide que os parâmetros de proteção de dados estão agora ativos.

    srvctl stop database -d db1
    srvctl start database -d db1

Isso conclui a configuração principal do banco de dados para o Data Guard.

Prepare o banco de dados em espera e ative o Data Guard

Details

O Oracle Data Guard requer a configuração do kernel do sistema operacional e as pilhas de software Oracle, incluindo conjuntos de patches na instância de banco de dados EC2 em espera para corresponder à instância de banco de dados EC2 primário. Para facilitar o gerenciamento e a simplicidade, a configuração de armazenamento de banco de dados de instância de banco de dados EC2 de reserva também deve corresponder à instância de banco de dados EC2 principal, como nome, número e tamanho dos grupos de discos ASM. A seguir estão os procedimentos detalhados para configurar a instância de banco de dados EC2 em espera para o Data Guard. Todos os comandos devem ser executados como ID de usuário proprietário oracle.

  1. Primeiro, revise a configuração do banco de dados primário na instância EC2 primária. Nesta demonstração, configuramos um banco de dados Oracle primário chamado db1 na instância de banco de dados EC2 principal com dois grupos de discos ASM: DADOS e LOGS em configuração de reinicialização autônoma. Os grupos de discos ASM primários podem estar em qualquer tipo de armazenamento dentro do ecossistema EC2.

  2. Siga os procedimentos na documentação "TR-4965: Implantação e proteção de banco de dados Oracle no AWS FSX/EC2 com iSCSI/ASM" para instalar e configurar Grid e Oracle na instância de banco de dados EC2 standby para corresponder ao banco de dados primário. O armazenamento do banco de dados deve ser provisionado e alocado para instância de banco de dados EC2 em espera do FSX ONTAP com a mesma capacidade de armazenamento que a instância de banco de dados EC2 principal.

    Observação Pare no passo 10 da Oracle database installation secção. O banco de dados em espera será instanciado a partir do banco de dados primário usando a função de duplicação de banco de dados dbca.
  3. Depois que o software Oracle estiver instalado e configurado, a partir do diretório Oracle_HOME dbs de reserva, copie a senha oracle do banco de dados principal.

    scp oracle@172.30.15.45:/u01/app/oracle/product/19.0.0/db1/dbs/orapwdb1 .
  4. Crie o arquivo tnsnames.ora com as seguintes entradas.

    # tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.0.0/db1/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    
    db1_NY =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-45.ec2.internal)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SID = db1)
        )
      )
    
    db1_LA =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-67.ec2.internal)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SID = db1)
        )
      )
  5. Adicione o nome do serviço de guarda de dados DB ao arquivo listener.ora.

    #Backup file is  /u01/app/oracle/crsdata/ip-172-30-15-67/output/listener.ora.bak.ip-172-30-15-67.oracle line added by Agent
    # listener.ora Network Configuration File: /u01/app/oracle/product/19.0.0/grid/network/admin/listener.ora
    # Generated by Oracle configuration tools.
    
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-67.ec2.internal)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
      )
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = db1_LA_DGMGRL.demo.netapp.com)
          (ORACLE_HOME = /u01/app/oracle/product/19.0.0/db1)
          (SID_NAME = db1)
        )
      )
    
    ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON              # line added by Agent
    VALID_NODE_CHECKING_REGISTRATION_LISTENER=ON            # line added by Agent
  6. Defina oracle home e path.

    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/db1
    export PATH=$PATH:$ORACLE_HOME/bin
  7. Use dbca para instanciar o banco de dados em espera do banco de dados primário db1.

    [oracle@ip-172-30-15-67 bin]$ dbca -silent -createDuplicateDB -gdbName db1 -primaryDBConnectionString ip-172-30-15-45.ec2.internal:1521/db1_NY.demo.netapp.com -sid db1 -initParams fal_server=db1_NY -createAsStandby -dbUniqueName db1_LA
    Enter SYS user password:
    
    Prepare for db operation
    22% complete
    Listener config step
    44% complete
    Auxiliary instance creation
    67% complete
    RMAN duplicate
    89% complete
    Post duplicate database operations
    100% complete
    
    Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/db1_LA/db1_LA.log" for further details.
  8. Validar banco de dados em espera duplicado. Banco de dados em espera recém-duplicado aberto inicialmente no modo SOMENTE LEITURA.

    [oracle@ip-172-30-15-67 bin]$ export ORACLE_SID=db1
    [oracle@ip-172-30-15-67 bin]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Wed Aug 30 18:25:46 2023
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2022, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.18.0.0.0
    
    SQL> select name, open_mode from v$database;
    
    NAME      OPEN_MODE
    --------- --------------------
    DB1       READ ONLY
    
    SQL> show parameter name
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    cdb_cluster_name                     string
    cell_offloadgroup_name               string
    db_file_name_convert                 string
    db_name                              string      db1
    db_unique_name                       string      db1_LA
    global_names                         boolean     FALSE
    instance_name                        string      db1
    lock_name_space                      string
    log_file_name_convert                string
    pdb_file_name_convert                string
    processor_group_name                 string
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    service_names                        string      db1_LA.demo.netapp.com
    SQL>
    SQL> show parameter log_archive_config
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_config                   string      DG_CONFIG=(db1_NY,db1_LA)
    SQL> show parameter fal_server
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    fal_server                           string      db1_NY
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/DB1_LA/DATAFILE/system.261.1146248215
    +DATA/DB1_LA/DATAFILE/sysaux.262.1146248231
    +DATA/DB1_LA/DATAFILE/undotbs1.263.1146248247
    +DATA/DB1_LA/03C5C01A66EE9797E0632D0F1EAC5F59/DATAFILE/system.264.1146248253
    +DATA/DB1_LA/03C5C01A66EE9797E0632D0F1EAC5F59/DATAFILE/sysaux.265.1146248261
    +DATA/DB1_LA/DATAFILE/users.266.1146248267
    +DATA/DB1_LA/03C5C01A66EE9797E0632D0F1EAC5F59/DATAFILE/undotbs1.267.1146248269
    +DATA/DB1_LA/03C5EFD07C41A1FAE0632D0F1EAC9BD8/DATAFILE/system.268.1146248271
    +DATA/DB1_LA/03C5EFD07C41A1FAE0632D0F1EAC9BD8/DATAFILE/sysaux.269.1146248279
    +DATA/DB1_LA/03C5EFD07C41A1FAE0632D0F1EAC9BD8/DATAFILE/undotbs1.270.1146248285
    +DATA/DB1_LA/03C5EFD07C41A1FAE0632D0F1EAC9BD8/DATAFILE/users.271.1146248293
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/DB1_LA/03C5F0DDF35CA2B6E0632D0F1EAC8B6B/DATAFILE/system.272.1146248295
    +DATA/DB1_LA/03C5F0DDF35CA2B6E0632D0F1EAC8B6B/DATAFILE/sysaux.273.1146248301
    +DATA/DB1_LA/03C5F0DDF35CA2B6E0632D0F1EAC8B6B/DATAFILE/undotbs1.274.1146248309
    +DATA/DB1_LA/03C5F0DDF35CA2B6E0632D0F1EAC8B6B/DATAFILE/users.275.1146248315
    +DATA/DB1_LA/03C5F1C9B142A2F1E0632D0F1EACF21A/DATAFILE/system.276.1146248317
    +DATA/DB1_LA/03C5F1C9B142A2F1E0632D0F1EACF21A/DATAFILE/sysaux.277.1146248323
    +DATA/DB1_LA/03C5F1C9B142A2F1E0632D0F1EACF21A/DATAFILE/undotbs1.278.1146248331
    +DATA/DB1_LA/03C5F1C9B142A2F1E0632D0F1EACF21A/DATAFILE/users.279.1146248337
    
    19 rows selected.
    
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/DB1_LA/CONTROLFILE/current.260.1146248209
    +LOGS/DB1_LA/CONTROLFILE/current.257.1146248209
    
    SQL> select name from v$tempfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/DB1_LA/TEMPFILE/temp.287.1146248371
    +DATA/DB1_LA/03C5C01A66EE9797E0632D0F1EAC5F59/TEMPFILE/temp.288.1146248375
    +DATA/DB1_LA/03C5EFD07C41A1FAE0632D0F1EAC9BD8/TEMPFILE/temp.290.1146248463
    +DATA/DB1_LA/03C5F0DDF35CA2B6E0632D0F1EAC8B6B/TEMPFILE/temp.291.1146248463
    +DATA/DB1_LA/03C5F1C9B142A2F1E0632D0F1EACF21A/TEMPFILE/temp.292.1146248463
    
    SQL> select group#, type, member from v$logfile order by 2, 1;
    
        GROUP# TYPE    MEMBER
    ---------- ------- ------------------------------------------------------------
             1 ONLINE  +LOGS/DB1_LA/ONLINELOG/group_1.259.1146248349
             1 ONLINE  +DATA/DB1_LA/ONLINELOG/group_1.280.1146248347
             2 ONLINE  +DATA/DB1_LA/ONLINELOG/group_2.281.1146248351
             2 ONLINE  +LOGS/DB1_LA/ONLINELOG/group_2.258.1146248353
             3 ONLINE  +DATA/DB1_LA/ONLINELOG/group_3.282.1146248355
             3 ONLINE  +LOGS/DB1_LA/ONLINELOG/group_3.260.1146248355
             4 STANDBY +DATA/DB1_LA/ONLINELOG/group_4.283.1146248357
             4 STANDBY +LOGS/DB1_LA/ONLINELOG/group_4.261.1146248359
             5 STANDBY +DATA/DB1_LA/ONLINELOG/group_5.284.1146248361
             5 STANDBY +LOGS/DB1_LA/ONLINELOG/group_5.262.1146248363
             6 STANDBY +LOGS/DB1_LA/ONLINELOG/group_6.263.1146248365
             6 STANDBY +DATA/DB1_LA/ONLINELOG/group_6.285.1146248365
             7 STANDBY +LOGS/DB1_LA/ONLINELOG/group_7.264.1146248369
             7 STANDBY +DATA/DB1_LA/ONLINELOG/group_7.286.1146248367
    
    14 rows selected.
    
    SQL> select name, open_mode from v$database;
    
    NAME      OPEN_MODE
    --------- --------------------
    DB1       READ ONLY
  9. Reinicie o banco de dados em espera mount no palco e execute o seguinte comando para ativar a recuperação gerenciada do banco de dados em espera.

    alter database recover managed standby database disconnect from session;
    SQL> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup mount;
    ORACLE instance started.
    
    Total System Global Area 8053062944 bytes
    Fixed Size                  9182496 bytes
    Variable Size            1291845632 bytes
    Database Buffers         6744440832 bytes
    Redo Buffers                7593984 bytes
    Database mounted.
    SQL> alter database recover managed standby database disconnect from session;
    
    Database altered.
  10. Valide o status de recuperação do banco de dados em espera. Observe o recovery logmerger em APPLYING_LOG ação.

    SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
    
    ROLE                        THREAD#  SEQUENCE# ACTION
    ------------------------ ---------- ---------- ------------
    recovery apply slave              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery logmerger                1         30 APPLYING_LOG
    RFS ping                          1         30 IDLE
    RFS async                         1         30 IDLE
    archive redo                      0          0 IDLE
    archive redo                      0          0 IDLE
    archive redo                      0          0 IDLE
    gap manager                       0          0 IDLE
    
    ROLE                        THREAD#  SEQUENCE# ACTION
    ------------------------ ---------- ---------- ------------
    managed recovery                  0          0 IDLE
    redo transport monitor            0          0 IDLE
    log writer                        0          0 IDLE
    archive local                     0          0 IDLE
    redo transport timer              0          0 IDLE
    
    16 rows selected.
    
    SQL>

Isso conclui a configuração de proteção do Data Guard para db1 do primário ao modo de espera com a recuperação em espera gerenciada ativada.

Configurar Data Guard Broker

Details

O broker Oracle Data Guard é uma estrutura de gerenciamento distribuída que automatiza e centraliza a criação, manutenção e monitoramento das configurações do Oracle Data Guard. A seção a seguir demonstra como configurar o Data Guard Broker para gerenciar o ambiente do Data Guard.

  1. Inicie o corretor de proteção de dados em bancos de dados primários e de espera com o seguinte comando via sqlplus.

    alter system set dg_broker_start=true scope=both;
  2. A partir do banco de dados principal, conete-se ao Data Guard Borker como SYSDBA.

    [oracle@ip-172-30-15-45 db1]$ dgmgrl sys@db1_NY
    DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Aug 30 19:34:14 2023
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
    
    Welcome to DGMGRL, type "help" for information.
    Password:
    Connected to "db1_NY"
    Connected as SYSDBA.
  3. Crie e ative a configuração do Data Guard Broker.

    DGMGRL> create configuration dg_config as primary database is db1_NY connect identifier is db1_NY;
    Configuration "dg_config" created with primary database "db1_ny"
    DGMGRL> add database db1_LA as connect identifier is db1_LA;
    Database "db1_la" added
    DGMGRL> enable configuration;
    Enabled.
    DGMGRL> show configuration;
    
    Configuration - dg_config
    
      Protection Mode: MaxPerformance
      Members:
      db1_ny - Primary database
        db1_la - Physical standby database
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 28 seconds ago)
  4. Valide o status do banco de dados dentro da estrutura de gerenciamento do Data Guard Broker.

    DGMGRL> show database db1_ny;
    
    Database - db1_ny
    
      Role:               PRIMARY
      Intended State:     TRANSPORT-ON
      Instance(s):
        db1
    
    Database Status:
    SUCCESS
    
    DGMGRL> show database db1_la;
    
    Database - db1_la
    
      Role:               PHYSICAL STANDBY
      Intended State:     APPLY-ON
      Transport Lag:      0 seconds (computed 1 second ago)
      Apply Lag:          0 seconds (computed 1 second ago)
      Average Apply Rate: 2.00 KByte/s
      Real Time Query:    OFF
      Instance(s):
        db1
    
    Database Status:
    SUCCESS
    
    DGMGRL>

No caso de uma falha, o Data Guard Broker pode ser usado para fazer failover do banco de dados primário para o modo de espera instantaniousy.

Clone o banco de dados em espera para outros casos de uso

Details

O principal benefício da preparação de banco de dados em espera no AWS FSX ONTAP no Data Guard é que ele pode ser clonado para atender a muitos outros casos de uso com o mínimo de investimento adicional de armazenamento. Na seção a seguir, demonstramos como fazer snapshot e clonar os volumes de banco de dados de reserva montados e em recuperação no FSX ONTAP para outros fins, COMO DESENVOLVIMENTO, TESTE, RELATÓRIO, etc., usando a ferramenta NetApp SnapCenter.

A seguir estão procedimentos de alto nível para clonar um banco de dados de LEITURA/GRAVAÇÃO do banco de dados de espera físico gerenciado no Data Guard usando o SnapCenter. Para obter instruções detalhadas sobre como configurar e configurar o SnapCenter, consulte "Soluções de bancos de dados de nuvem híbrida com SnapCenter"as seções relavant Oracle.

  1. Começamos com a criação de uma tabela de teste e a inserção de uma linha na tabela de teste no banco de dados primário. Em seguida, vamos validar se a transação passa para o modo de espera e, finalmente, o clone.

    [oracle@ip-172-30-15-45 db1]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Thu Aug 31 16:35:53 2023
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2022, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.18.0.0.0
    
    SQL> alter session set container=db1_pdb1;
    
    Session altered.
    
    SQL> create table test(
      2  id integer,
      3  dt timestamp,
      4  event varchar(100));
    
    Table created.
    
    SQL> insert into test values(1, sysdate, 'a test transaction on primary database db1 and ec2 db host: ip-172-30-15-45.ec2.internal');
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select * from test;
    
            ID
    ----------
    DT
    ---------------------------------------------------------------------------
    EVENT
    --------------------------------------------------------------------------------
             1
    31-AUG-23 04.49.29.000000 PM
    a test transaction on primary database db1 and ec2 db host: ip-172-30-15-45.ec2.
    internal
    
    SQL> select instance_name, host_name from v$instance;
    
    INSTANCE_NAME
    ----------------
    HOST_NAME
    ----------------------------------------------------------------
    db1
    ip-172-30-15-45.ec2.internal
  2. Adicione o cluster de armazenamento FSX ao Storage Systems no SnapCenter com o IP de gerenciamento de cluster FSX e a credencial fsxadmin.

    Captura de tela mostrando esta etapa na GUI.

  3. Adicione o aws EC2-user ao Credential Settings no .

    Captura de tela mostrando esta etapa na GUI.

  4. Adicione instância de banco de dados EC2 em espera e clone instância de banco de dados EC2 ao Hosts.

    Captura de tela mostrando esta etapa na GUI.

    Observação A instância de banco de dados clone EC2 deve ter pilhas de software Oracle semelhantes instaladas e configuradas. Em nosso caso de teste, a infraestrutura de grade e o Oracle 19Ci instalados e configurados, mas nenhum banco de dados criado.
  5. Crie uma política de backup personalizada para backup de banco de dados completo offline/montado.

    Captura de tela mostrando esta etapa na GUI.

  6. Aplique a política de backup para proteger o banco de dados em espera Resources no separador .

    Captura de tela mostrando esta etapa na GUI.

  7. Clique no nome do banco de dados para abrir a página backups do banco de dados. Selecione um backup a ser usado para o clone do banco de dados e clique Clone no botão para iniciar o fluxo de trabalho do clone.

    Captura de tela mostrando esta etapa na GUI.

  8. `Complete Database Clone`Selecione e nomeie o SID da instância do clone.

    Captura de tela mostrando esta etapa na GUI.

  9. Selecione o host clone, que hospeda o banco de dados clonado do banco de dados standby. Aceite o padrão para arquivos de dados, arquivos de controle e refazer logs. Dois grupos de discos ASM serão criados no host clone que correspondem aos grupos de discos no banco de dados de espera.

    Captura de tela mostrando esta etapa na GUI.

  10. Não são necessárias credenciais de banco de dados para autenticação baseada em SO. Combine a configuração inicial do Oracle com a configuração configurada na instância do banco de dados clone EC2.

    Captura de tela mostrando esta etapa na GUI.

  11. Altere os parâmetros do banco de dados clone, se necessário, e especifique scripts para serem executados antes de cleen, se houver.

    Captura de tela mostrando esta etapa na GUI.

  12. Insira SQL para executar após o clone. Na demonstração, executamos comandos para desativar o modo de arquivo de banco de dados para um banco de dados dev/test/report.

    Captura de tela mostrando esta etapa na GUI.

  13. Configure a notificação por e-mail, se desejado.

    Captura de tela mostrando esta etapa na GUI.

  14. Revise o resumo e clique Finish para iniciar o clone.

    Captura de tela mostrando esta etapa na GUI.

  15. Monitore o trabalho clone na Monitor guia. Observamos que levou cerca de 8 minutos para clonar um banco de dados de cerca de 300GBMB no tamanho do volume do banco de dados.

    Captura de tela mostrando esta etapa na GUI.

  16. Valide o banco de dados clone do SnapCenter, que é imediatamente registrado Resources na guia logo após a operação clone.

    Captura de tela mostrando esta etapa na GUI.

  17. Consulte o banco de dados clone da instância clone EC2. Nós validamos que a transação de teste que ocorreu no banco de dados primário tinha atravessado para clonar o banco de dados.

    [oracle@ip-172-30-15-126 ~]$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dev
    [oracle@ip-172-30-15-126 ~]$ export ORACLE_SID=db1dev
    [oracle@ip-172-30-15-126 ~]$ export PATH=$PATH:$ORACLE_HOME/bin
    [oracle@ip-172-30-15-126 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Wed Sep 6 16:41:41 2023
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2022, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.18.0.0.0
    
    SQL> select name, open_mode, log_mode from v$database;
    
    NAME      OPEN_MODE            LOG_MODE
    --------- -------------------- ------------
    DB1DEV    READ WRITE           NOARCHIVELOG
    
    SQL> select instance_name, host_name from v$instance;
    
    INSTANCE_NAME
    ----------------
    HOST_NAME
    ----------------------------------------------------------------
    db1dev
    ip-172-30-15-126.ec2.internal
    
    SQL> alter session set container=db1_pdb1;
    
    Session altered.
    
    SQL> select * from test;
    
            ID
    ----------
    DT
    ---------------------------------------------------------------------------
    EVENT
    --------------------------------------------------------------------------------
             1
    31-AUG-23 04.49.29.000000 PM
    a test transaction on primary database db1 and ec2 db host: ip-172-30-15-45.ec2.
    internal
    
    
    SQL>

Isso conclui o clone e a validação de um novo banco de dados Oracle a partir de banco de dados de reserva no Data Guard no FSX storage para DESENVOLVIMENTO, TESTE, RELATÓRIO ou qualquer outro caso de uso. Vários bancos de dados Oracle podem ser clonados do mesmo banco de dados de reserva no Data Guard.

Onde encontrar informações adicionais