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.

TR-5006: Implementação de Oracle VLDB de alto rendimento no Google Cloud NetApp Volumes com Data Guard

Colaboradores netapp-revathid kevin-hoke

Allen Cao, Niyaz Mohamed, NetApp

A solução fornece uma visão geral e detalhes para configurar o Oracle Very Large Database (VLDB) de alto rendimento no Google Cloud NetApp Volumes (GCNV) com o Oracle Data Guard no Google Cloud.

Propósito

O alto rendimento e o Oracle VLDB de missão crítica colocam uma grande demanda no armazenamento de banco de dados de backend. Para atender ao acordo de nível de serviço (SLA), o armazenamento do banco de dados deve fornecer a capacidade necessária e altas operações de entrada/saída por segundo (IOPS), mantendo o desempenho de latência abaixo de milissegundos. Isso é particularmente desafiador ao implantar tal carga de trabalho de banco de dados na nuvem pública com um ambiente de recursos de armazenamento compartilhado. Nem todas as plataformas de armazenamento são criadas iguais. GCNV é um serviço de armazenamento premium oferecido pelo Google que pode dar suporte a implantações de banco de dados Oracle de missão crítica na nuvem do Google, exigindo IOPS sustentado e características de desempenho de baixa latência. A arquitetura acomoda cargas de trabalho OLTP e OLAP, com níveis de serviço configuráveis que suportam vários perfis de desempenho. O GCNV oferece desempenho extremamente rápido com latência abaixo de milissegundos, alcançando até 4,5 GiBps por volume de transferência com cargas de trabalho mistas de leitura/gravação.

Aproveitando o recurso rápido de backup de snapshot (segundos) e clone (minutos) do GCNV, cópias em tamanho real do banco de dados de produção podem ser clonadas do Physical Standby em tempo real para atender a muitos outros casos de uso, como DEV, UAT, etc. Você pode dispensar uma licença Active Data Guard e o Snapshot Standby ineficiente e complexo. A economia de custos pode ser substancial. Para uma configuração nominal do Oracle Data Guard com CPUs de 64 núcleos em servidores Oracle primários e em espera, a economia no custo de licenciamento do Active Data Guard chega a US$ 1.472.000, com base na lista de preços mais recente da Oracle.  

Nesta documentação, demonstramos como configurar um Oracle VLDB com configuração do Data Guard no armazenamento GCNVS com vários volumes NFS e Oracle ASM para balanceamento de carga de armazenamento. Os volumes do banco de dados em espera podem ser rapidamente copiados por meio de snapshot e clonados para acesso de leitura/gravação. A equipe de engenharia da NetApp Solutions fornece um kit de ferramentas de automação para criar e atualizar clones com gerenciamento de ciclo de vida simplificado.

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

  • Implementação do Oracle VLDB em uma configuração do Data Guard no serviço de armazenamento GCNV nas regiões do Google Cloud.

  • Faça backup de instantâneos e clone o banco de dados standby físico para atender a casos de uso como relatórios, desenvolvimento, testes, etc. por meio de automação.

Público

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

  • Um DBA que configura o Oracle VLDB com o Data Guard no Google Cloud para alta disponibilidade, proteção de dados e recuperação de desastres.

  • Um arquiteto de soluções de banco de dados interessado na configuração do Oracle VLDB com Data Guard na nuvem do Google.

  • Um administrador de armazenamento que gerencia o armazenamento GCNV que oferece suporte ao banco de dados Oracle.

  • Um proprietário de aplicativo que gosta de configurar o Oracle VLDB com o Data Guard em um ambiente de nuvem do Google.

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

O teste e a validação desta solução foram realizados em um laboratório de nuvem do Google que pode não corresponder ao ambiente real de implantação do usuário. Para mais informações, consulte a seção Fatores-chave para consideração de implantação .

Arquitetura

Esta imagem fornece uma visão detalhada da implementação do Oracle Data Guard no Google Cloud no GCNV.

Componentes de hardware e software

Hardware

Google Cloud NetApp Volumes

Serviço atual oferecido pelo Google

Dois pools de armazenamento, nível de serviço premium, QoS automático

VMs do Google Compute Engine para servidores de banco de dados

N1 (4 vcpus, 15 GiB de memória)

Quatro VMs de banco de dados, servidor de banco de dados primário, servidor de banco de dados em espera, servidor de banco de dados clone e observador do Data Guard.

Software

RedHat Linux

Red Hat Enterprise Linux 8.10 (Ootpa) - x86/64

Imagem do RHEL Marketplace, PAYG

Infraestrutura de grade Oracle

Versão 19.18

Patch RU aplicado p34762026_190000_Linux-x86-64.zip

Banco de Dados Oracle

Versão 19.18

Patch RU aplicado p34765931_190000_Linux-x86-64.zip

Patch único dNFS

p32931941_190000_Linux-x86-64.zip

Aplicado à grade e ao banco de dados

Oracle OPatch

Versão 12.2.0.1.36

Último patch p6880880_190000_Linux-x86-64.zip

Ansible

Versão core 2.16.2

versão python - 3.10.13

NFS

Versão 3.0

dNFS habilitado para Oracle

Configuração do Oracle VLDB Data Guard com uma configuração simulada de NY para LA DR

Banco de dados

DB_UNIQUE_NAME

Nome do serviço Oracle Net

Primário

NTAP_NY

NTAP_NY.cvs-pm-host-1p.internal

Espera

NTAP_LA

NTAP_LA.cvs-pm-host-1p.internal

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

  • * Configuração de Google Cloud NetApp Volumes .* Os GCNV são alocados na nuvem do Google como Storage Pools . Nesses testes e validações, implantamos um pool de armazenamento de 2 TiB para hospedar o banco de dados primário Oracle na região East4 e um pool de armazenamento de 4 TiB para hospedar o banco de dados standby e o clone do DB na região West4. O pool de armazenamento GCNV tem quatro níveis de serviço: Flex, Standard, Premium e Extreme. A capacidade de E/S do pool de capacidade ANF é baseada no tamanho do pool de capacidade e seu nível de serviço. Ao criar um pool de capacidade, você define o local do pool de armazenamento, o nível de serviço, a zona de disponibilidade e a capacidade do pool de armazenamento. Para a configuração do Oracle Data Guard, a disponibilidade zonal deve ser suficiente, pois o Data Guard fornece proteção contra failover do banco de dados devido a uma falha no nível da zona.

  • Dimensionamento dos volumes do banco de dados. Para implantação de produção, a NetApp recomenda fazer uma avaliação completa da necessidade de taxa de transferência do seu banco de dados Oracle no relatório Oracle AWR. Leve em consideração o tamanho do banco de dados, os requisitos de taxa de transferência e o nível de serviço ao projetar o layout dos volumes GCNV para o banco de dados VLDB. Recomenda-se usar somente Premium ou Extreme serviço para banco de dados Oracle. A largura de banda é garantida em 64 MiB/s por capacidade de volume TiB até um máximo de 4,5 GiBps para Premium serviço e capacidade de volume de 128 MiB/s por TiB até 4,5 GiBps para Extreme serviço. Maior rendimento exigirá um dimensionamento de volume maior para atender ao requisito.

  • Vários volumes e balanceamento de carga. Um único volume grande pode fornecer um nível de desempenho semelhante ao de vários volumes com o mesmo tamanho de volume agregado, já que a QoS é rigorosamente aplicada com base no dimensionamento do volume e no nível de serviço do pool de armazenamento. É recomendável implementar vários volumes (vários pontos de montagem NFS) para o Oracle VLDB para melhor utilizar o pool de recursos de armazenamento GCNV de backend compartilhado e atender aos requisitos de taxa de transferência superiores a 4,5 GiBps. Implemente o Oracle ASM para balanceamento de carga de E/S em vários volumes NFS.

  • Considerações sobre instância de VM do Google Compute Engine. Nestes testes e validações, usamos o Compute Engine VM - N1 com 4 vCPUs e 15 GiB de memória. Você precisa escolher a instância de VM do Compute Engine DB adequadamente para o Oracle VLDB com alto requisito de taxa de transferência. Além do número de vCPUs e da quantidade de RAM, a largura de banda da rede da VM (entrada e saída ou limite de taxa de transferência da NIC) pode se tornar um gargalo antes que a taxa de transferência do armazenamento do banco de dados seja atingida.

  • Configuração dNFS. Ao usar o dNFS, um banco de dados Oracle em execução em uma VM do Google Compute Engine com armazenamento GCNV pode gerar significativamente mais E/S do que o cliente NFS nativo. Certifique-se de que o patch p32931941 do Oracle dNFS seja aplicado para corrigir possíveis bugs.

Implantação da solução

A seção a seguir demonstra a configuração do Oracle VLDB no GCNV em uma configuração do Oracle Data Guard entre um Oracle DB primário no Google Cloud da região Leste com armazenamento GCNV para um Oracle DB de espera físico no Google Cloud da região Oeste com armazenamento GCNV.

Pré-requisitos para implantação

Details

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

  1. Uma conta do Google Cloud foi configurada e um projeto foi criado dentro dela para implantar recursos para configurar o Oracle Data Guard.

  2. Crie uma VPC e sub-redes que abranjam as regiões desejadas para o Data Guard. Para uma configuração de DR resiliente, considere colocar os bancos de dados primário e de espera em diferentes localizações geográficas que possam tolerar grandes desastres em uma região local.

  3. No console do portal do Google Cloud, implante quatro instâncias de VM Linux do mecanismo de computação do Google, uma como o servidor Oracle DB principal, uma como o servidor Oracle DB de espera, um servidor de DB de destino clone e um observador Oracle Data Guard. Veja o diagrama de arquitetura na seção anterior para obter mais detalhes sobre a configuração do ambiente. Siga a documentação do Google"Crie uma instância de VM Linux no Compute Engine" para obter instruções detalhadas.

    Observação Certifique-se de ter alocado pelo menos 50 G no volume raiz das VMs do Azure para ter espaço suficiente para preparar os arquivos de instalação do Oracle. As VMs do mecanismo de computação do Google são bloqueadas no nível da instância por padrão. Para permitir a comunicação entre VMs, regras de firewall específicas devem ser criadas para abrir o fluxo de tráfego da porta TCP, como a típica porta Oracle 1521.
  4. No console do portal do Google Cloud, implante dois pools de armazenamento GCNV para hospedar volumes de banco de dados Oracle. Referido à documentação"Início rápido para criar um pool de armazenamento" para obter instruções passo a passo. A seguir estão algumas capturas de tela para referência rápida.

    Captura de tela mostrando a configuração do ambiente GCNV. Captura de tela mostrando a configuração do ambiente GCNV. Captura de tela mostrando a configuração do ambiente GCNV. Captura de tela mostrando a configuração do ambiente GCNV.

  5. Crie volumes de banco de dados em pools de armazenamento. Referido à documentação"Criar um início rápido de volume" para obter instruções passo a passo. A seguir estão algumas capturas de tela para referência rápida.

    Captura de tela mostrando a configuração do ambiente GCNV. Captura de tela mostrando a configuração do ambiente GCNV. Captura de tela mostrando a configuração do ambiente GCNV. Captura de tela mostrando a configuração do ambiente GCNV. Captura de tela mostrando a configuração do ambiente GCNV. Captura de tela mostrando a configuração do ambiente GCNV.

  6. O banco de dados Oracle primário deve ter sido instalado e configurado no servidor Oracle DB primário. Por outro lado, no servidor Oracle DB em espera ou no servidor Oracle DB clone, somente o software Oracle é instalado e nenhum banco de dados Oracle é criado. O ideal é que o layout dos diretórios dos arquivos Oracle seja exatamente igual em todos os servidores Oracle DB. Consulte TR-4974 para obter ajuda sobre infraestrutura de grade Oracle e instalação e configuração de banco de dados com NFS/ASM. Embora a solução seja validada no ambiente AWS FSx/EC2, ela pode ser igualmente aplicada ao ambiente Google GCNV/Compute Engine.

Configuração primária do Oracle VLDB para o Data Guard

Details

Nesta demonstração, configuramos um banco de dados Oracle primário chamado NTAP no servidor de banco de dados primário com oito pontos de montagem NFS: /u01 para o binário Oracle, /u02, /u03, /u04, /u05, /u06, /u07 para os arquivos de dados Oracle e balanceamento de carga com o grupo de discos Oracle ASM +DATA; /u08 para os logs ativos do Oracle, arquivos de log arquivados e balanceamento de carga com o grupo de discos Oracle ASM +LOGS. Os arquivos de controle do Oracle são colocados nos grupos de discos +DATA e +LOGS para redundância. Esta configuração serve como uma configuração de referência. Sua implantação real deve levar em consideração suas necessidades e requisitos específicos em termos de dimensionamento do pool de armazenamento, nível de serviço, número de volumes de banco de dados e dimensionamento de cada volume.

Para obter procedimentos detalhados passo a passo para configurar o Oracle Data Guard no NFS com ASM, consulte TR-5002 -"Redução de custos do Oracle Active Data Guard com o Azure NetApp Files" . Embora os procedimentos no TR-5002 tenham sido validados no ambiente Azure ANF, eles são igualmente aplicáveis ao ambiente Google GCNV.

A seguir são ilustrados os detalhes de um Oracle VLDB primário em uma configuração do Data Guard no ambiente Google GCNV.

  1. O NTAP do banco de dados primário no servidor de banco de dados do mecanismo de computação primário é implantado como um banco de dados de instância única em uma configuração de reinicialização autônoma no armazenamento GCNV com protocolo NFS e ASM como gerenciador de volume de armazenamento do banco de dados.

    orap.us-east4-a.c.cvs-pm-host-1p.internal:
    Zone: us-east-4a
    size: n1-standard-4 (4 vCPUs, 15 GB Memory)
    OS: Linux (redhat 8.10)
    pub_ip: 35.212.124.14
    pri_ip: 10.70.11.5
    
    [oracle@orap ~]$ df -h
    Filesystem                Size  Used Avail Use% Mounted on
    devtmpfs                  7.2G     0  7.2G   0% /dev
    tmpfs                     7.3G     0  7.3G   0% /dev/shm
    tmpfs                     7.3G  8.5M  7.2G   1% /run
    tmpfs                     7.3G     0  7.3G   0% /sys/fs/cgroup
    /dev/sda2                  50G   40G   11G  80% /
    /dev/sda1                 200M  5.9M  194M   3% /boot/efi
    10.165.128.180:/orap-u05  250G  201G   50G  81% /u05
    10.165.128.180:/orap-u08  400G  322G   79G  81% /u08
    10.165.128.180:/orap-u04  250G  201G   50G  81% /u04
    10.165.128.180:/orap-u07  250G  201G   50G  81% /u07
    10.165.128.180:/orap-u02  250G  201G   50G  81% /u02
    10.165.128.180:/orap-u06  250G  201G   50G  81% /u06
    10.165.128.180:/orap-u01  100G   21G   80G  21% /u01
    10.165.128.180:/orap-u03  250G  201G   50G  81% /u03
    
    
    [oracle@orap ~]$ 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
    NTAP:/u01/app/oracle/product/19.0.0/NTAP:N
  2. Efetue login no servidor de banco de dados primário como usuário Oracle. Validar configuração da grade.

    $GRID_HOME/bin/crsctl stat res -t
    [oracle@orap ~]$ $GRID_HOME/bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       orap                     STABLE
    ora.LISTENER.lsnr
                   ONLINE  ONLINE       orap                     STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       orap                     STABLE
    ora.asm
                   ONLINE  ONLINE       orap                     Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      orap                     STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        ONLINE  ONLINE       orap                     STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.evmd
          1        ONLINE  ONLINE       orap                     STABLE
    ora.ntap.db
          1        ONLINE  ONLINE       orap                     Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /NTAP,STABLE
    --------------------------------------------------------------------------------
    [oracle@orap ~]$
  3. Configuração do grupo de discos ASM.

    asmcmd
    [oracle@orap ~]$ asmcmd
    ASMCMD> lsdg
    State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
    MOUNTED  EXTERN  N         512             512   4096  4194304   1228800  1219888                0         1219888              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  4194304    327680   326556                0          326556              0             N  LOGS/
    ASMCMD> lsdsk
    Path
    /u02/oradata/asm/orap_data_disk_01
    /u02/oradata/asm/orap_data_disk_02
    /u02/oradata/asm/orap_data_disk_03
    /u02/oradata/asm/orap_data_disk_04
    /u03/oradata/asm/orap_data_disk_05
    /u03/oradata/asm/orap_data_disk_06
    /u03/oradata/asm/orap_data_disk_07
    /u03/oradata/asm/orap_data_disk_08
    /u04/oradata/asm/orap_data_disk_09
    /u04/oradata/asm/orap_data_disk_10
    /u04/oradata/asm/orap_data_disk_11
    /u04/oradata/asm/orap_data_disk_12
    /u05/oradata/asm/orap_data_disk_13
    /u05/oradata/asm/orap_data_disk_14
    /u05/oradata/asm/orap_data_disk_15
    /u05/oradata/asm/orap_data_disk_16
    /u06/oradata/asm/orap_data_disk_17
    /u06/oradata/asm/orap_data_disk_18
    /u06/oradata/asm/orap_data_disk_19
    /u06/oradata/asm/orap_data_disk_20
    /u07/oradata/asm/orap_data_disk_21
    /u07/oradata/asm/orap_data_disk_22
    /u07/oradata/asm/orap_data_disk_23
    /u07/oradata/asm/orap_data_disk_24
    /u08/oralogs/asm/orap_logs_disk_01
    /u08/oralogs/asm/orap_logs_disk_02
    /u08/oralogs/asm/orap_logs_disk_03
    /u08/oralogs/asm/orap_logs_disk_04
    ASMCMD>
  4. Configuração de parâmetros para o Data Guard no banco de dados primário.

    SQL> show parameter name
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    cdb_cluster_name                     string
    cell_offloadgroup_name               string
    db_file_name_convert                 string
    db_name                              string      ntap
    db_unique_name                       string      ntap_ny
    global_names                         boolean     FALSE
    instance_name                        string      NTAP
    lock_name_space                      string
    log_file_name_convert                string
    pdb_file_name_convert                string
    processor_group_name                 string
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    service_names                        string      ntap_ny.cvs-pm-host-1p.interna
    
    SQL> sho parameter log_archive_dest
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest                     string
    log_archive_dest_1                   string      LOCATION=USE_DB_RECOVERY_FILE_
                                                     DEST VALID_FOR=(ALL_LOGFILES,A
                                                     LL_ROLES) DB_UNIQUE_NAME=NTAP_
                                                     NY
    log_archive_dest_10                  string
    log_archive_dest_11                  string
    log_archive_dest_12                  string
    log_archive_dest_13                  string
    log_archive_dest_14                  string
    log_archive_dest_15                  string
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest_16                  string
    log_archive_dest_17                  string
    log_archive_dest_18                  string
    log_archive_dest_19                  string
    log_archive_dest_2                   string      SERVICE=NTAP_LA ASYNC VALID_FO
                                                     R=(ONLINE_LOGFILES,PRIMARY_ROL
                                                     E) DB_UNIQUE_NAME=NTAP_LA
    log_archive_dest_20                  string
    log_archive_dest_21                  string
    log_archive_dest_22                  string
  5. Configuração primária do banco de dados.

    SQL> select name, open_mode, log_mode from v$database;
    
    NAME      OPEN_MODE            LOG_MODE
    --------- -------------------- ------------
    NTAP      READ WRITE           ARCHIVELOG
    
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 NTAP_PDB1                      READ WRITE NO
             4 NTAP_PDB2                      READ WRITE NO
             5 NTAP_PDB3                      READ WRITE NO
    
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/DATAFILE/system.257.1198026005
    +DATA/NTAP/DATAFILE/sysaux.258.1198026051
    +DATA/NTAP/DATAFILE/undotbs1.259.1198026075
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.266.1198027075
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.267.1198027075
    +DATA/NTAP/DATAFILE/users.260.1198026077
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.268.1198027075
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/system.272.1198028157
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/sysaux.273.1198028157
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/undotbs1.271.1198028157
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/users.275.1198028185
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/system.277.1198028187
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/sysaux.278.1198028187
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/undotbs1.276.1198028187
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/users.280.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/system.282.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/sysaux.283.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/undotbs1.281.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/users.285.1198028229
    
    19 rows selected.
    
    
    SQL> select member from v$logfile;
    
    MEMBER
    --------------------------------------------------------------------------------
    +DATA/NTAP/ONLINELOG/group_3.264.1198026139
    +LOGS/NTAP/ONLINELOG/group_3.259.1198026147
    +DATA/NTAP/ONLINELOG/group_2.263.1198026137
    +LOGS/NTAP/ONLINELOG/group_2.258.1198026145
    +DATA/NTAP/ONLINELOG/group_1.262.1198026137
    +LOGS/NTAP/ONLINELOG/group_1.257.1198026145
    +DATA/NTAP/ONLINELOG/group_4.286.1198511423
    +LOGS/NTAP/ONLINELOG/group_4.265.1198511425
    +DATA/NTAP/ONLINELOG/group_5.287.1198511445
    +LOGS/NTAP/ONLINELOG/group_5.266.1198511447
    +DATA/NTAP/ONLINELOG/group_6.288.1198511459
    
    MEMBER
    --------------------------------------------------------------------------------
    +LOGS/NTAP/ONLINELOG/group_6.267.1198511461
    +DATA/NTAP/ONLINELOG/group_7.289.1198511477
    +LOGS/NTAP/ONLINELOG/group_7.268.1198511479
    
    14 rows selected.
    
    
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/CONTROLFILE/current.261.1198026135
    +LOGS/NTAP/CONTROLFILE/current.256.1198026135
  6. Configuração do ouvinte Oracle.

    lsnrctl status listener
    [oracle@orap admin]$ lsnrctl status
    
    LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-APR-2025 16:14:00
    
    Copyright (c) 1991, 2022, Oracle.  All rights reserved.
    
    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
    Start Date                14-APR-2025 19:44:21
    Uptime                    0 days 20 hr. 29 min. 38 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /u01/app/oracle/product/19.0.0/grid/network/admin/listener.ora
    Listener Log File         /u01/app/oracle/diag/tnslsnr/orap/listener/alert/log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orap.us-east4-a.c.cvs-pm-host-1p.internal)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
    Services Summary...
    Service "+ASM" has 1 instance(s).
      Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "+ASM_DATA" has 1 instance(s).
      Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "+ASM_LOGS" has 1 instance(s).
      Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "32639b76c9bc91a8e063050b460a2116.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "32639d40d02d925fe063050b460a60e3.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "32639e973af79299e063050b460afbad.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "86b637b62fdf7a65e053f706e80a27ca.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "NTAPXDB.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "NTAP_NY_DGMGRL.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status UNKNOWN, has 1 handler(s) for this service...
    Service "ntap.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "ntap_pdb1.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "ntap_pdb2.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "ntap_pdb3.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    The command completed successfully
  7. O flashback está habilitado no banco de dados primário.

    SQL> select name, database_role, flashback_on from v$database;
    
    NAME      DATABASE_ROLE    FLASHBACK_ON
    --------- ---------------- ------------------
    NTAP      PRIMARY          YES
  8. Configuração do dNFS no banco de dados primário.

    SQL> select svrname, dirname from v$dnfs_servers;
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.165.128.180
    /orap-u04
    
    10.165.128.180
    /orap-u05
    
    10.165.128.180
    /orap-u07
    
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.165.128.180
    /orap-u03
    
    10.165.128.180
    /orap-u06
    
    10.165.128.180
    /orap-u02
    
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.165.128.180
    /orap-u08
    
    10.165.128.180
    /orap-u01
    
    
    8 rows selected.

Isso conclui a demonstração de uma configuração do Data Guard para VLDB NTAP no site primário no GCNV com NFS/ASM.

Configuração do Oracle VLDB em espera para o Data Guard

Details

O Oracle Data Guard requer configuração do kernel do sistema operacional e pilhas de software Oracle, incluindo conjuntos de patches no servidor de banco de dados em espera para corresponder ao servidor de banco de dados principal. Para facilitar o gerenciamento e a simplicidade, a configuração de armazenamento do banco de dados do servidor de banco de dados em espera deve, idealmente, corresponder também à do servidor de banco de dados primário, como o layout do diretório do banco de dados e os tamanhos dos pontos de montagem do NFS.

Novamente, para obter procedimentos detalhados passo a passo para configurar o Oracle Data Guard standby no NFS com ASM, consulte"TR-5002 - Redução de custos do Oracle Active Data Guard com o Azure NetApp Files" e"TR-4974 - Oracle 19c em reinicialização autônoma no AWS FSx/EC2 com NFS/ASM" seções relevantes. A seguir são ilustrados os detalhes da configuração do Oracle VLDB em espera no servidor de banco de dados em espera em uma configuração do Data Guard no ambiente Google GCNV.

  1. Configuração do servidor Oracle DB em espera no site em espera no laboratório de demonstração.

    oras.us-west4-a.c.cvs-pm-host-1p.internal:
    Zone: us-west4-a
    size: n1-standard-4 (4 vCPUs, 15 GB Memory)
    OS: Linux (redhat 8.10)
    pub_ip: 35.219.129.195
    pri_ip: 10.70.14.16
    
    [oracle@oras ~]$ df -h
    Filesystem                Size  Used Avail Use% Mounted on
    devtmpfs                  7.2G     0  7.2G   0% /dev
    tmpfs                     7.3G  1.1G  6.2G  16% /dev/shm
    tmpfs                     7.3G  8.5M  7.2G   1% /run
    tmpfs                     7.3G     0  7.3G   0% /sys/fs/cgroup
    /dev/sda2                  50G   40G   11G  80% /
    /dev/sda1                 200M  5.9M  194M   3% /boot/efi
    10.165.128.197:/oras-u07  250G  201G   50G  81% /u07
    10.165.128.197:/oras-u06  250G  201G   50G  81% /u06
    10.165.128.197:/oras-u02  250G  201G   50G  81% /u02
    10.165.128.196:/oras-u03  250G  201G   50G  81% /u03
    10.165.128.196:/oras-u01  100G   20G   81G  20% /u01
    10.165.128.197:/oras-u05  250G  201G   50G  81% /u05
    10.165.128.197:/oras-u04  250G  201G   50G  81% /u04
    10.165.128.197:/oras-u08  400G  317G   84G  80% /u08
    
    [oracle@oras ~]$ cat /etc/oratab
    #Backup file is  /u01/app/oracle/crsdata/oras/output/oratab.bak.oras.oracle line added by Agent
    #
    
    
    
    # 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
    NTAP:/u01/app/oracle/product/19.0.0/NTAP:N              # line added by Agent
  2. Configuração de infraestrutura de grade no servidor de banco de dados em espera.

    [oracle@oras ~]$ $GRID_HOME/bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       oras                     STABLE
    ora.LISTENER.lsnr
                   ONLINE  ONLINE       oras                     STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       oras                     STABLE
    ora.asm
                   ONLINE  ONLINE       oras                     Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      oras                     STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        ONLINE  ONLINE       oras                     STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.evmd
          1        ONLINE  ONLINE       oras                     STABLE
    ora.ntap_la.db
          1        ONLINE  INTERMEDIATE oras                     Dismounted,Mount Ini
                                                                 tiated,HOME=/u01/app
                                                                 /oracle/product/19.0
                                                                 .0/NTAP,STABLE
    --------------------------------------------------------------------------------
  3. Configuração de grupos de discos ASM no servidor de banco de dados em espera.

    [oracle@oras ~]$ asmcmd
    ASMCMD> lsdg
    State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
    MOUNTED  EXTERN  N         512             512   4096  4194304   1228800  1228420                0         1228420              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  4194304    322336   322204                0          322204              0             N  LOGS/
    ASMCMD> lsdsk
    Path
    /u02/oradata/asm/oras_data_disk_01
    /u02/oradata/asm/oras_data_disk_02
    /u02/oradata/asm/oras_data_disk_03
    /u02/oradata/asm/oras_data_disk_04
    /u03/oradata/asm/oras_data_disk_05
    /u03/oradata/asm/oras_data_disk_06
    /u03/oradata/asm/oras_data_disk_07
    /u03/oradata/asm/oras_data_disk_08
    /u04/oradata/asm/oras_data_disk_09
    /u04/oradata/asm/oras_data_disk_10
    /u04/oradata/asm/oras_data_disk_11
    /u04/oradata/asm/oras_data_disk_12
    /u05/oradata/asm/oras_data_disk_13
    /u05/oradata/asm/oras_data_disk_14
    /u05/oradata/asm/oras_data_disk_15
    /u05/oradata/asm/oras_data_disk_16
    /u06/oradata/asm/oras_data_disk_17
    /u06/oradata/asm/oras_data_disk_18
    /u06/oradata/asm/oras_data_disk_19
    /u06/oradata/asm/oras_data_disk_20
    /u07/oradata/asm/oras_data_disk_21
    /u07/oradata/asm/oras_data_disk_22
    /u07/oradata/asm/oras_data_disk_23
    /u07/oradata/asm/oras_data_disk_24
    /u08/oralogs/asm/oras_logs_disk_01
    /u08/oralogs/asm/oras_logs_disk_02
    /u08/oralogs/asm/oras_logs_disk_03
    /u08/oralogs/asm/oras_logs_disk_04
    ASMCMD>
  4. Configuração de parâmetros para o Data Guard no banco de dados em espera.

    SQL> show parameter name
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    cdb_cluster_name                     string
    cell_offloadgroup_name               string
    db_file_name_convert                 string
    db_name                              string      NTAP
    db_unique_name                       string      NTAP_LA
    global_names                         boolean     FALSE
    instance_name                        string      NTAP
    lock_name_space                      string
    log_file_name_convert                string
    pdb_file_name_convert                string
    processor_group_name                 string
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    service_names                        string      NTAP_LA.cvs-pm-host-1p.interna
                                                     l
    
    SQL> show parameter log_archive_config
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_config                   string      DG_CONFIG=(NTAP_NY,NTAP_LA)
    SQL> show parameter fal_server
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    fal_server                           string      NTAP_NY
  5. Configuração do banco de dados em espera.

    SQL> select name, open_mode, log_mode from v$database;
    
    NAME      OPEN_MODE            LOG_MODE
    --------- -------------------- ------------
    NTAP      MOUNTED              ARCHIVELOG
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       MOUNTED
             3 NTAP_PDB1                      MOUNTED
             4 NTAP_PDB2                      MOUNTED
             5 NTAP_PDB3                      MOUNTED
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/DATAFILE/system.261.1198520347
    +DATA/NTAP_LA/DATAFILE/sysaux.262.1198520373
    +DATA/NTAP_LA/DATAFILE/undotbs1.263.1198520399
    +DATA/NTAP_LA/32635CC1DCF58A60E063050B460AB746/DATAFILE/system.264.1198520417
    +DATA/NTAP_LA/32635CC1DCF58A60E063050B460AB746/DATAFILE/sysaux.265.1198520435
    +DATA/NTAP_LA/DATAFILE/users.266.1198520451
    +DATA/NTAP_LA/32635CC1DCF58A60E063050B460AB746/DATAFILE/undotbs1.267.1198520455
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/system.268.1198520471
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/sysaux.269.1198520489
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/undotbs1.270.1198520505
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/users.271.1198520513
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/system.272.1198520517
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/sysaux.273.1198520533
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/undotbs1.274.1198520551
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/users.275.1198520559
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/system.276.1198520563
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/sysaux.277.1198520579
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/undotbs1.278.1198520595
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/users.279.1198520605
    
    19 rows selected.
    
    
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/CONTROLFILE/current.260.1198520303
    +LOGS/NTAP_LA/CONTROLFILE/current.257.1198520305
    
    
    SQL> select group#, type, member from v$logfile order by 2, 1;
    
        GROUP# TYPE    MEMBER
    ---------- ------- ------------------------------------------------------------
             1 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_1.280.1198520649
             1 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_1.259.1198520651
             2 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_2.281.1198520659
             2 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_2.258.1198520661
             3 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_3.282.1198520669
             3 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_3.260.1198520671
             4 STANDBY +DATA/NTAP_LA/ONLINELOG/group_4.283.1198520677
             4 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_4.261.1198520679
             5 STANDBY +DATA/NTAP_LA/ONLINELOG/group_5.284.1198520687
             5 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_5.262.1198520689
             6 STANDBY +DATA/NTAP_LA/ONLINELOG/group_6.285.1198520697
    
        GROUP# TYPE    MEMBER
    ---------- ------- ------------------------------------------------------------
             6 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_6.263.1198520699
             7 STANDBY +DATA/NTAP_LA/ONLINELOG/group_7.286.1198520707
             7 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_7.264.1198520709
    
    14 rows selected.
  6. 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
    ------------------------ ---------- ---------- ------------
    post role transition              0          0 IDLE
    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         24 APPLYING_LOG
    managed recovery                  0          0 IDLE
    RFS ping                          1         24 IDLE
    archive redo                      0          0 IDLE
    archive redo                      0          0 IDLE
    gap manager                       0          0 IDLE
    
    ROLE                        THREAD#  SEQUENCE# ACTION
    ------------------------ ---------- ---------- ------------
    archive local                     0          0 IDLE
    redo transport timer              0          0 IDLE
    archive redo                      0          0 IDLE
    RFS async                         1         24 IDLE
    redo transport monitor            0          0 IDLE
    log writer                        0          0 IDLE
    
    17 rows selected.
  7. O flashback é habilitado no banco de dados em espera.

    SQL> select name, database_role, flashback_on from v$database;
    
    NAME      DATABASE_ROLE    FLASHBACK_ON
    --------- ---------------- ------------------
    NTAP      PHYSICAL STANDBY YES
  8. Configuração do dNFS no banco de dados em espera.

SQL> select svrname, dirname from v$dnfs_servers;

SVRNAME
--------------------------------------------------------------------------------
DIRNAME
--------------------------------------------------------------------------------
10.165.128.197
/oras-u04

10.165.128.197
/oras-u05

10.165.128.197
/oras-u06

10.165.128.197
/oras-u07

10.165.128.197
/oras-u02

10.165.128.197
/oras-u08

10.165.128.196
/oras-u03

10.165.128.196
/oras-u01


8 rows selected.

Isso conclui a demonstração de uma configuração do Data Guard para VLDB NTAP com recuperação de standby gerenciada habilitada no site de standby.

Configurar o Data Guard Broker e o FSFO com um observador

Configurar o Data Guard Broker

Details

O Oracle Data Guard Broker é uma estrutura de gerenciamento distribuída que automatiza e centraliza a criação, a manutenção e o 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 Data Guard Broker nos bancos de dados primário e de espera com o seguinte comando via sqlplus.

    alter system set dg_broker_start=true scope=both;
  2. No banco de dados primário, conecte-se ao Data Guard Borker como SYSDBA.

    [oracle@orap ~]$ dgmgrl sys@NTAP_NY
    DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Dec 11 20:53:20 2024
    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 "NTAP_NY"
    Connected as SYSDBA.
    DGMGRL>
  3. Crie e habilite a configuração do Data Guard Broker.

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

    DGMGRL> show database ntap_ny;
    
    Database - ntap_ny
    
      Role:               PRIMARY
      Intended State:     TRANSPORT-ON
      Instance(s):
        NTAP
    
    Database Status:
    SUCCESS
    
    
    DGMGRL> show database ntap_la;
    
    Database - ntap_la
    
      Role:               PHYSICAL STANDBY
      Intended State:     APPLY-ON
      Transport Lag:      0 seconds (computed 0 seconds ago)
      Apply Lag:          0 seconds (computed 0 seconds ago)
      Average Apply Rate: 3.00 KByte/s
      Real Time Query:    OFF
      Instance(s):
        NTAP
    
    Database Status:
    SUCCESS
    
    DGMGRL>

Em caso de falha, o Data Guard Broker pode ser usado para fazer failover do banco de dados primário para o standby instantaneamente. Se Fast-Start Failover estiver habilitado, o Data Guard Broker poderá fazer failover do banco de dados primário para o standby quando uma falha for detectada sem a intervenção do usuário.

Configurar FSFO com um observador

Details

Opcionalmente, o Fast Start Fail Over (FSFO) pode ser habilitado para que o Data Guard Broker faça o failover do banco de dados primário para o banco de dados em espera automaticamente em caso de falha. A seguir estão os procedimentos para configurar o FSFO com uma instância de observador.

  1. Crie uma instância leve do mecanismo de computação do Google para executar o Observer em uma zona diferente do servidor de banco de dados principal ou em espera. No caso de teste, usamos uma instância N1 com 2 vCPU com 7,5 G de memória. Tenha a mesma versão do Oracle instalada no host.

  2. Efetue login como usuário Oracle e defina o ambiente Oracle no usuário Oracle .bash_profile.

    vi ~/.bash_profile
    # .bash_profile
    
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    
    # User specific environment and startup programs
    
    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/NTAP
    export PATH=$ORACLE_HOME/bin:$PATH
  3. Adicione entradas de nome TNS do banco de dados primário e de espera ao arquivo tnsname.ora.

    vi $ORACLE_HOME/network/admin/tsnames.ora
    NTAP_NY =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = orap.us-east4-a.c.cvs-pm-host-1p.internal)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = NTAP_NY.cvs-pm-host-1p.internal)
          (UR=A)
        )
      )
    
    NTAP_LA =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oras.us-west4-a.c.cvs-pm-host-1p.internal)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = NTAP_LA.cvs-pm-host-1p.internal)
          (UR=A)
        )
      )
  4. Crie e inicialize a carteira com uma senha.

    mkdir -p /u01/app/oracle/admin/NTAP/wallet
    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -create
    [oracle@orao NTAP]$ mkdir -p /u01/app/oracle/admin/NTAP/wallet
    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -create
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Enter password:
    Enter password again:
    [oracle@orao NTAP]$
  5. Habilite a autenticação sem senha para sistemas de usuários do banco de dados primário e de espera. Digite primeiro a senha do sistema e depois a senha da carteira do passo anterior.

    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_NY sys

    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_LA sys

    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_NY sys
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Your secret/Password is missing in the command line
    Enter your secret/Password:
    Re-enter your secret/Password:
    Enter wallet password:
    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_LA sys
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Your secret/Password is missing in the command line
    Enter your secret/Password:
    Re-enter your secret/Password:
    Enter wallet password:
    [oracle@orao NTAP]$
  6. Atualize sqlnet.ora com o local da carteira.

    vi $ORACLE_HOME/network/admin/sqlnet.ora
    WALLET_LOCATION =
       (SOURCE =
          (METHOD = FILE)
          (METHOD_DATA = (DIRECTORY = /u01/app/oracle/admin/NTAP/wallet))
    )
    SQLNET.WALLET_OVERRIDE = TRUE
  7. Valide as credenciais.

    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -listCredential
    sqlplus /@NTAP_LA as sysdba
    sqlplus /@NTAP_NY as sysdba
    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -listCredential
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Enter wallet password:
    List credential (index: connect_string username)
    2: NTAP_LA sys
    1: NTAP_NY sys
  8. Configure e habilite o Fast-Start Failover.

    mkdir /u01/app/oracle/admin/NTAP/fsfo
    dgmgrl
    Welcome to DGMGRL, type "help" for information.
    DGMGRL> connect /@NTAP_NY
    Connected to "ntap_ny"
    Connected as SYSDBA.
    DGMGRL> show configuration;
    
    Configuration - dg_config
    
      Protection Mode: MaxAvailability
      Members:
      ntap_ny - Primary database
        ntap_la - Physical standby database
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 58 seconds ago)
    
    DGMGRL> enable fast_start failover;
    Enabled in Zero Data Loss Mode.
    DGMGRL> show configuration;
    
    Configuration - dg_config
    
      Protection Mode: MaxAvailability
      Members:
      ntap_ny - Primary database
        Warning: ORA-16819: fast-start failover observer not started
    
        ntap_la - (*) Physical standby database
    
    Fast-Start Failover: Enabled in Zero Data Loss Mode
    
    Configuration Status:
    WARNING   (status updated 43 seconds ago)
  9. Inicie e valide o observador.

    nohup dgmgrl /@NTAP_NY "start observer file='/u01/app/oracle/admin/NTAP/fsfo/fsfo.dat'" >> /u01/app/oracle/admin/NTAP/fsfo/dgmgrl.log &
    [oracle@orao NTAP]$ nohup dgmgrl /@NTAP_NY "start observer file='/u01/app/oracle/admin/NTAP/fsfo/fsfo.dat'" >> /u01/app/oracle/admin/NTAP/fsfo/dgmgrl.log &
    [1] 94957
    
    [oracle@orao fsfo]$ dgmgrl
    DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Apr 16 21:12:09 2025
    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.
    DGMGRL> connect /@NTAP_NY
    Connected to "ntap_ny"
    Connected as SYSDBA.
    DGMGRL> show configuration verbose;
    
    Configuration - dg_config
    
      Protection Mode: MaxAvailability
      Members:
      ntap_ny - Primary database
        ntap_la - (*) Physical standby database
    
      (*) Fast-Start Failover target
    
      Properties:
        FastStartFailoverThreshold      = '30'
        OperationTimeout                = '30'
        TraceLevel                      = 'USER'
        FastStartFailoverLagLimit       = '30'
        CommunicationTimeout            = '180'
        ObserverReconnect               = '0'
        FastStartFailoverAutoReinstate  = 'TRUE'
        FastStartFailoverPmyShutdown    = 'TRUE'
        BystandersFollowRoleChange      = 'ALL'
        ObserverOverride                = 'FALSE'
        ExternalDestination1            = ''
        ExternalDestination2            = ''
        PrimaryLostWriteAction          = 'CONTINUE'
        ConfigurationWideServiceName    = 'ntap_CFG'
    
    Fast-Start Failover: Enabled in Zero Data Loss Mode
      Lag Limit:          30 seconds (not in use)
      Threshold:          30 seconds
      Active Target:      ntap_la
      Potential Targets:  "ntap_la"
        ntap_la    valid
      Observer:           orao
      Shutdown Primary:   TRUE
      Auto-reinstate:     TRUE
      Observer Reconnect: (none)
      Observer Override:  FALSE
    
    Configuration Status:
    SUCCESS
    
    DGMGRL>
Observação Para atingir perda zero de dados, o modo de proteção do Oracle Data Guard precisa ser definido como MaxAvailability ou MaxProtection modo. O modo de proteção padrão de MaxPerformance pode ser alterado na interface do Data Guard Broker editando a configuração do Data Guard e alterando LogXptMode de ASYNC para SYNC. O modo de log de destino do log de arquivamento do Oracle precisa ser alterado adequadamente. Quando o aplicativo de log em tempo real estiver habilitado para o Data Guard, conforme necessário para MaxAvailability , evite reinicializar o banco de dados automaticamente porque a reinicialização automática do banco de dados pode abrir inadvertidamente o banco de dados de espera em READ ONLY WITH APPLY modo, que requer uma licença Active Data Guard. Em vez disso, inicialize o banco de dados manualmente para garantir que ele permaneça em um MOUNT estado com recuperação gerenciada em tempo real.

Clonar banco de dados standby para outros casos de uso por meio de automação

Details

O kit de ferramentas de automação a seguir foi projetado especificamente para criar ou atualizar clones de um banco de dados standby do Oracle Data Guard implantado no GCNV com configuração NFS/ASM para um gerenciamento completo do ciclo de vida do clone.

https://bitbucket.ngage.netapp.com/projects/NS-BB/repos/na_oracle_clone_gcnv/browse
Observação No momento, o kit de ferramentas só pode ser acessado por usuários internos da NetApp com acesso ao bitbucket. Para usuários externos interessados, solicite acesso à sua equipe de conta ou entre em contato com a equipe de engenharia de soluções da NetApp . Consulte"Ciclo de vida automatizado do Oracle Clone no GCNV com ASM" para instruções de uso.

Onde encontrar informações adicionais

Para saber mais sobre as informações descritas neste documento, revise os seguintes documentos e/ou sites: