TR-5003: Implementação de Oracle VLDB de alto rendimento em ANF
Allen Cao, Niyaz Mohamed, NetApp
A solução fornece uma visão geral e detalhes para configurar um Oracle Very Large Database (VLDB) de alto rendimento no Microsoft Azure NetApp Files (ANF) com o Oracle Data Guard na nuvem do Azure.
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. O armazenamento premium do Azure NetApp Files em combinação com a infraestrutura do Azure pode atender às necessidades de uma carga de trabalho Oracle altamente exigente. Em um benchmark de desempenho validado ("Desempenho do banco de dados Oracle em vários volumes do Azure NetApp Files" ), o ANF entregou 2,5 milhões de IOPS de leitura com latência de 700 microssegundos em uma carga de trabalho de seleção aleatória 100% sintética por meio da ferramenta SLOB. Com um tamanho de bloco padrão de 8k, isso se traduz em uma taxa de transferência de cerca de 20 GiB/s.
Nesta documentação, demonstramos como configurar um Oracle VLDB com configuração do Data Guard no armazenamento ANF com vários volumes NFS e Oracle ASM para balanceamento de carga de armazenamento. O banco de dados em espera pode ser rapidamente copiado em backup (minutos) por meio de snapshot e clonado para acesso de leitura/gravação para casos de uso conforme desejado. A equipe de engenharia da NetApp Solutions fornece um kit de ferramentas de automação para criar e atualizar clones com facilidade, de acordo com um cronograma definido pelo usuário.
Esta solução aborda os seguintes casos de uso:
-
Implementação do Oracle VLDB em uma configuração do Data Guard no armazenamento do Microsoft Azure NetApp Files em regiões do Azure.
-
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 na nuvem do Azure para alta disponibilidade, proteção de dados e recuperação de desastres.
-
Um arquiteto de soluções de banco de dados interessado no Oracle VLDB com configuração do Data Guard na nuvem Azure.
-
Um administrador de armazenamento que gerencia o armazenamento do Azure NetApp Files 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 Azure.
Ambiente de teste e validação de soluções
O teste e a validação desta solução foram realizados em um ambiente de laboratório em nuvem do Azure 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
Componentes de hardware e software
Hardware |
||
Azure NetApp Files |
Versão atual oferecida pela Microsoft |
Dois pools com capacidade de 4 TiB, nível de serviço premium, QoS automático |
VMs do Azure para servidores de banco de dados |
B4ms padrão (4 vcpus, 16 GiB de memória) |
Três VMs de banco de dados, uma como servidor de banco de dados primário, uma como servidor de banco de dados de espera e a terceira como servidor de banco de dados clone |
Software |
||
RedHat Linux |
Red Hat Enterprise Linux 8.6 (LVM) - x64 Gen2 |
Assinatura RedHat implantada para teste |
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.internal.cloudapp.net |
Espera |
NTAP_LA |
NTAP_LA.internal.cloudapp.net |
Fatores-chave para consideração de implantação
-
* Configuração do Azure NetApp Files .* Os Azure NetApp Files são alocados na conta de armazenamento do Azure NetApp como
Capacity Pools
. Nesses testes e validações, implantamos um pool com capacidade de 2 TiB para hospedar o Oracle primário na região Leste e um pool com capacidade de 4 TiB para hospedar o banco de dados standby e o clone do DB na região Oeste 2. O pool de capacidade da ANF tem três níveis de serviço: Standard, Premium e Ultra. A capacidade de E/S do pool de capacidade ANF é baseada no tamanho do pool de capacidade e seu nível de serviço. Na criação de um pool de capacidade, você pode definir o QoS como Automático ou Manual e a criptografia de dados em repouso como Única ou Dupla. -
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 e os requisitos de taxa de transferência ao dimensionar volumes ANF para o banco de dados. Com a configuração automática de QoS para ANF, a largura de banda é garantida em 128 MiB/s por capacidade de volume TiB alocada com Nível de Serviço Ultra. Maior rendimento pode exigir dimensionamento de volume maior para atender ao requisito.
-
Volume único ou múltiplos volumes. Um único volume grande pode fornecer um nível de desempenho semelhante ao de vários volumes com o mesmo tamanho agregado, já que a QoS é rigorosamente aplicada com base no dimensionamento do volume e no nível de serviço do pool de capacidade. É 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 ANF de backend compartilhado. Implemente o Oracle ASM para balanceamento de carga de E/S em vários volumes NFS.
-
Grupo de volume de aplicação. Implante o Application Volume Group (AVG) para Oracle para otimização de desempenho. Os volumes implantados pelo grupo de volumes do aplicativo são colocados na infraestrutura regional ou zonal para atingir latência e taxa de transferência otimizadas para as VMs do aplicativo.
-
Considerações sobre VM do Azure. Nestes testes e validações, usamos uma VM do Azure - Standard_B4ms com 4 vCPUs e 16 GiB de memória. Você precisa escolher a VM do Azure 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 capacidade de armazenamento do banco de dados seja atingida.
-
Configuração dNFS. Ao usar o dNFS, um banco de dados Oracle em execução em uma Máquina Virtual do Azure com armazenamento ANF 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
Supõe-se que você já tenha seu banco de dados Oracle primário implantado em um ambiente de nuvem do Azure dentro de uma VNet como ponto de partida para configurar o Oracle Data Guard. O ideal é que o banco de dados primário seja implantado no armazenamento ANF com montagem NFS. Seu banco de dados Oracle principal também pode ser executado em um armazenamento NetApp ONTAP ou em qualquer outro armazenamento de escolha, seja no ecossistema do Azure ou em um data center privado. A seção a seguir demonstra a configuração do Oracle VLDB no ANF em uma configuração do Oracle Data Guard entre um Oracle DB primário no Azure com armazenamento ANF e um Oracle DB de espera físico no Azure com armazenamento ANF.
Pré-requisitos para implantação
Details
A implantação requer os seguintes pré-requisitos.
-
Uma conta de nuvem do Azure foi configurada e as sub-redes de VNet e rede necessárias foram criadas na sua conta do Azure.
-
No console do portal de nuvem do Azure, você precisa implantar no mínimo três VMs do Azure Linux, uma como o servidor Oracle DB principal, uma como o servidor Oracle DB de espera e um servidor de DB de destino clone para relatórios, desenvolvimento, testes etc. Consulte o diagrama de arquitetura na seção anterior para obter mais detalhes sobre a configuração do ambiente. Revise também o Microsoft"Máquinas Virtuais do Azure" para maiores informações.
-
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. Para obter detalhes sobre a recomendação da NetApp para implantação automatizada do Oracle na nuvem do Azure e ANF, consulte os seguintes relatórios técnicos para obter ajuda.
-
"TR-4987: Implantação simplificada e automatizada do Oracle no Azure NetApp Files com NFS"
Certifique-se de ter alocado pelo menos 128 GB no volume raiz das VMs do Azure para ter espaço suficiente para preparar os arquivos de instalação do Oracle.
-
-
No console do portal de nuvem do Azure, implante dois pools de capacidade de armazenamento ANF para hospedar volumes de banco de dados Oracle. Os pools de capacidade de armazenamento do ANF devem estar situados em regiões diferentes para imitar uma configuração verdadeira do DataGuard. Se você não estiver familiarizado com a implantação do armazenamento ANF, consulte a documentação"Início rápido: Configurar o Azure NetApp Files e criar um volume NFS" para obter instruções passo a passo.
-
Quando o banco de dados Oracle principal e o banco de dados Oracle de espera estão situados em duas regiões diferentes, um gateway VPN deve ser configurado para permitir o fluxo de tráfego de dados entre duas VNets separadas. A configuração detalhada da rede no Azure está além do escopo deste documento. As capturas de tela a seguir fornecem algumas referências sobre como os gateways VPN são configurados, conectados e o fluxo de tráfego de dados é confirmado no laboratório.
Gateways VPN de laboratório:
O gateway vnet primário:
Status da conexão do gateway Vnet:
Valide se os fluxos de tráfego estão estabelecidos (clique nos três pontos para abrir a página):
-
Consulte esta documentação"Implantar grupo de volumes de aplicativos para Oracle" para implantar o Application Volume Group para Oracle.
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 Azure DB primário com seis pontos de montagem NFS: /u01 para o binário Oracle, /u02, /u04, /u05, /u06 para os arquivos de dados Oracle e um arquivo de controle Oracle, /u03 para os logs ativos Oracle, arquivos de log arquivados e um arquivo de controle Oracle redundante. 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 capacidade, 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 Azure NetApp Files" e"TR-4974 - Oracle 19c em reinicialização autônoma no AWS FSx/EC2 com NFS/ASM" seções relevantes. Embora os procedimentos no TR-4974 tenham sido validados no Amazon FSx ONTAP, eles são igualmente aplicáveis ao ANF. A seguir são ilustrados os detalhes de um Oracle VLDB primário em uma configuração do Data Guard.
-
O NTAP do banco de dados principal no servidor primário do Azure DB orap.internal.cloudapp.net é implantado inicialmente como um banco de dados autônomo com o ANF no NFS e o ASM como armazenamento de banco de dados.
orap.internal.cloudapp.net: resource group: ANFAVSRG Location: East US size: Standard B4ms (4 vcpus, 16 GiB memory) OS: Linux (redhat 8.6) pub_ip: 172.190.207.231 pri_ip: 10.0.0.4 [oracle@orap ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.7G 0 7.7G 0% /dev tmpfs 7.8G 1.1G 6.7G 15% /dev/shm tmpfs 7.8G 17M 7.7G 1% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/mapper/rootvg-rootlv 22G 20G 2.1G 91% / /dev/mapper/rootvg-usrlv 10G 2.3G 7.8G 23% /usr /dev/sda1 496M 181M 315M 37% /boot /dev/mapper/rootvg-varlv 8.0G 1.1G 7.0G 13% /var /dev/sda15 495M 5.8M 489M 2% /boot/efi /dev/mapper/rootvg-homelv 2.0G 47M 2.0G 3% /home /dev/mapper/rootvg-tmplv 12G 11G 1.9G 85% /tmp /dev/sdb1 32G 49M 30G 1% /mnt 10.0.2.38:/orap-u06 300G 282G 19G 94% /u06 10.0.2.38:/orap-u04 300G 282G 19G 94% /u04 10.0.2.36:/orap-u01 400G 21G 380G 6% /u01 10.0.2.37:/orap-u02 300G 282G 19G 94% /u02 10.0.2.36:/orap-u03 400G 282G 119G 71% /u03 10.0.2.39:/orap-u05 300G 282G 19G 94% /u05 [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
-
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 OFFLINE OFFLINE Instance Shutdown,ST ABLE -------------------------------------------------------------------------------- [oracle@orap ~]$
-
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 1146880 1136944 0 1136944 0 N DATA/ MOUNTED EXTERN N 512 512 4096 4194304 286720 283312 0 283312 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/oralogs/asm/orap_logs_disk_01 /u03/oralogs/asm/orap_logs_disk_02 /u03/oralogs/asm/orap_logs_disk_03 /u03/oralogs/asm/orap_logs_disk_04 /u04/oradata/asm/orap_data_disk_05 /u04/oradata/asm/orap_data_disk_06 /u04/oradata/asm/orap_data_disk_07 /u04/oradata/asm/orap_data_disk_08 /u05/oradata/asm/orap_data_disk_09 /u05/oradata/asm/orap_data_disk_10 /u05/oradata/asm/orap_data_disk_11 /u05/oradata/asm/orap_data_disk_12 /u06/oradata/asm/orap_data_disk_13 /u06/oradata/asm/orap_data_disk_14 /u06/oradata/asm/orap_data_disk_15 /u06/oradata/asm/orap_data_disk_16 ASMCMD>
-
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.internal.cloudapp.net 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
-
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.1189724205 +DATA/NTAP/DATAFILE/sysaux.258.1189724249 +DATA/NTAP/DATAFILE/undotbs1.259.1189724275 +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.266.1189725235 +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.267.1189725235 +DATA/NTAP/DATAFILE/users.260.1189724275 +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.268.1189725235 +DATA/NTAP/2B1302C26E089A59E0630400000A4D5C/DATAFILE/system.272.1189726217 +DATA/NTAP/2B1302C26E089A59E0630400000A4D5C/DATAFILE/sysaux.273.1189726217 +DATA/NTAP/2B1302C26E089A59E0630400000A4D5C/DATAFILE/undotbs1.271.1189726217 +DATA/NTAP/2B1302C26E089A59E0630400000A4D5C/DATAFILE/users.275.1189726243 NAME -------------------------------------------------------------------------------- +DATA/NTAP/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/system.277.1189726245 +DATA/NTAP/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/sysaux.278.1189726245 +DATA/NTAP/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/undotbs1.276.1189726245 +DATA/NTAP/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/users.280.1189726269 +DATA/NTAP/2B13061057039B10E0630400000AA001/DATAFILE/system.282.1189726271 +DATA/NTAP/2B13061057039B10E0630400000AA001/DATAFILE/sysaux.283.1189726271 +DATA/NTAP/2B13061057039B10E0630400000AA001/DATAFILE/undotbs1.281.1189726271 +DATA/NTAP/2B13061057039B10E0630400000AA001/DATAFILE/users.285.1189726293 19 rows selected. SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- +DATA/NTAP/ONLINELOG/group_3.264.1189724351 +LOGS/NTAP/ONLINELOG/group_3.259.1189724361 +DATA/NTAP/ONLINELOG/group_2.263.1189724351 +LOGS/NTAP/ONLINELOG/group_2.257.1189724359 +DATA/NTAP/ONLINELOG/group_1.262.1189724351 +LOGS/NTAP/ONLINELOG/group_1.258.1189724359 +DATA/NTAP/ONLINELOG/group_4.286.1190297279 +LOGS/NTAP/ONLINELOG/group_4.262.1190297283 +DATA/NTAP/ONLINELOG/group_5.287.1190297293 +LOGS/NTAP/ONLINELOG/group_5.263.1190297295 +DATA/NTAP/ONLINELOG/group_6.288.1190297307 MEMBER -------------------------------------------------------------------------------- +LOGS/NTAP/ONLINELOG/group_6.264.1190297309 +DATA/NTAP/ONLINELOG/group_7.289.1190297325 +LOGS/NTAP/ONLINELOG/group_7.265.1190297327 14 rows selected. SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------------- +DATA/NTAP/CONTROLFILE/current.261.1189724347 +LOGS/NTAP/CONTROLFILE/current.256.1189724347
-
Configuração do dNFS no banco de dados primário.
SQL> select svrname, dirname from v$dnfs_servers; SVRNAME -------------------------------------------------------------------------------- DIRNAME -------------------------------------------------------------------------------- 10.0.2.39 /orap-u05 10.0.2.38 /orap-u04 10.0.2.38 /orap-u06 SVRNAME -------------------------------------------------------------------------------- DIRNAME -------------------------------------------------------------------------------- 10.0.2.37 /orap-u02 10.0.2.36 /orap-u03 10.0.2.36 /orap-u01 6 rows selected.
Isso conclui a demonstração de uma configuração do Data Guard para VLDB NTAP no site primário em ANF 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.
-
Configuração do servidor Oracle DB em espera no site em espera no laboratório de demonstração.
oras.internal.cloudapp.net: resource group: ANFAVSRG Location: West US 2 size: Standard B4ms (4 vcpus, 16 GiB memory) OS: Linux (redhat 8.6) pub_ip: 172.179.119.75 pri_ip: 10.0.1.4 [oracle@oras ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.7G 0 7.7G 0% /dev tmpfs 7.8G 1.1G 6.7G 15% /dev/shm tmpfs 7.8G 25M 7.7G 1% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/mapper/rootvg-rootlv 22G 17G 5.6G 75% / /dev/mapper/rootvg-usrlv 10G 2.3G 7.8G 23% /usr /dev/mapper/rootvg-varlv 8.0G 1.1G 7.0G 13% /var /dev/mapper/rootvg-homelv 2.0G 52M 2.0G 3% /home /dev/sda1 496M 181M 315M 37% /boot /dev/sda15 495M 5.8M 489M 2% /boot/efi /dev/mapper/rootvg-tmplv 12G 11G 1.8G 86% /tmp /dev/sdb1 32G 49M 30G 1% /mnt 10.0.3.36:/oras-u03 400G 282G 119G 71% /u03 10.0.3.36:/oras-u04 300G 282G 19G 94% /u04 10.0.3.36:/oras-u05 300G 282G 19G 94% /u05 10.0.3.36:/oras-u02 300G 282G 19G 94% /u02 10.0.3.36:/oras-u01 100G 21G 80G 21% /u01 10.0.3.36:/oras-u06 300G 282G 19G 94% /u06 [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
-
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 --------------------------------------------------------------------------------
-
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 1146880 1136912 0 1136912 0 N DATA/ MOUNTED EXTERN N 512 512 4096 4194304 286720 284228 0 284228 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/oralogs/asm/oras_logs_disk_01 /u03/oralogs/asm/oras_logs_disk_02 /u03/oralogs/asm/oras_logs_disk_03 /u03/oralogs/asm/oras_logs_disk_04 /u04/oradata/asm/oras_data_disk_05 /u04/oradata/asm/oras_data_disk_06 /u04/oradata/asm/oras_data_disk_07 /u04/oradata/asm/oras_data_disk_08 /u05/oradata/asm/oras_data_disk_09 /u05/oradata/asm/oras_data_disk_10 /u05/oradata/asm/oras_data_disk_11 /u05/oradata/asm/oras_data_disk_12 /u06/oradata/asm/oras_data_disk_13 /u06/oradata/asm/oras_data_disk_14 /u06/oradata/asm/oras_data_disk_15 /u06/oradata/asm/oras_data_disk_16
-
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.internal.cloudapp.net 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
-
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.1190301867 +DATA/NTAP_LA/DATAFILE/sysaux.262.1190301923 +DATA/NTAP_LA/DATAFILE/undotbs1.263.1190301969 +DATA/NTAP_LA/2B12C97618069248E0630400000AC50B/DATAFILE/system.264.1190301987 +DATA/NTAP_LA/2B12C97618069248E0630400000AC50B/DATAFILE/sysaux.265.1190302013 +DATA/NTAP_LA/DATAFILE/users.266.1190302039 +DATA/NTAP_LA/2B12C97618069248E0630400000AC50B/DATAFILE/undotbs1.267.1190302045 +DATA/NTAP_LA/2B1302C26E089A59E0630400000A4D5C/DATAFILE/system.268.1190302071 +DATA/NTAP_LA/2B1302C26E089A59E0630400000A4D5C/DATAFILE/sysaux.269.1190302099 +DATA/NTAP_LA/2B1302C26E089A59E0630400000A4D5C/DATAFILE/undotbs1.270.1190302125 +DATA/NTAP_LA/2B1302C26E089A59E0630400000A4D5C/DATAFILE/users.271.1190302133 NAME -------------------------------------------------------------------------------- +DATA/NTAP_LA/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/system.272.1190302137 +DATA/NTAP_LA/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/sysaux.273.1190302163 +DATA/NTAP_LA/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/undotbs1.274.1190302189 +DATA/NTAP_LA/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/users.275.1190302197 +DATA/NTAP_LA/2B13061057039B10E0630400000AA001/DATAFILE/system.276.1190302201 +DATA/NTAP_LA/2B13061057039B10E0630400000AA001/DATAFILE/sysaux.277.1190302229 +DATA/NTAP_LA/2B13061057039B10E0630400000AA001/DATAFILE/undotbs1.278.1190302255 +DATA/NTAP_LA/2B13061057039B10E0630400000AA001/DATAFILE/users.279.1190302263 19 rows selected. SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------------- +DATA/NTAP_LA/CONTROLFILE/current.260.1190301831 +LOGS/NTAP_LA/CONTROLFILE/current.257.1190301833 SQL> select group#, type, member from v$logfile order by 2, 1; GROUP# TYPE MEMBER ---------- ------- -------------------------------------------------------------------------------- 1 ONLINE +DATA/NTAP_LA/ONLINELOG/group_1.280.1190302305 1 ONLINE +LOGS/NTAP_LA/ONLINELOG/group_1.259.1190302309 2 ONLINE +DATA/NTAP_LA/ONLINELOG/group_2.281.1190302315 2 ONLINE +LOGS/NTAP_LA/ONLINELOG/group_2.258.1190302319 3 ONLINE +DATA/NTAP_LA/ONLINELOG/group_3.282.1190302325 3 ONLINE +LOGS/NTAP_LA/ONLINELOG/group_3.260.1190302329 4 STANDBY +DATA/NTAP_LA/ONLINELOG/group_4.283.1190302337 4 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_4.261.1190302339 5 STANDBY +DATA/NTAP_LA/ONLINELOG/group_5.284.1190302347 5 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_5.262.1190302349 6 STANDBY +DATA/NTAP_LA/ONLINELOG/group_6.285.1190302357 GROUP# TYPE MEMBER ---------- ------- -------------------------------------------------------------------------------- 6 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_6.263.1190302359 7 STANDBY +DATA/NTAP_LA/ONLINELOG/group_7.286.1190302367 7 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_7.264.1190302369 14 rows selected.
-
Valide o status de recuperação do banco de dados em espera. Observe o
recovery logmerger
emAPPLYING_LOG
Ação.SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS; ROLE THREAD# SEQUENCE# ACTION ------------------------ ---------- ---------- ------------ recovery logmerger 1 32 APPLYING_LOG recovery apply slave 0 0 IDLE RFS async 1 32 IDLE recovery apply slave 0 0 IDLE recovery apply slave 0 0 IDLE RFS ping 1 32 IDLE archive redo 0 0 IDLE managed recovery 0 0 IDLE archive redo 0 0 IDLE archive redo 0 0 IDLE recovery apply slave 0 0 IDLE ROLE THREAD# SEQUENCE# ACTION ------------------------ ---------- ---------- ------------ redo transport monitor 0 0 IDLE log writer 0 0 IDLE archive local 0 0 IDLE redo transport timer 0 0 IDLE gap manager 0 0 IDLE RFS archive 0 0 IDLE 17 rows selected.
-
Configuração do dNFS no banco de dados em espera.
SQL> select svrname, dirname from v$dnfs_servers; SVRNAME -------------------------------------------------------------------------------- DIRNAME -------------------------------------------------------------------------------- 10.0.3.36 /oras-u05 10.0.3.36 /oras-u04 10.0.3.36 /oras-u02 10.0.3.36 /oras-u06 10.0.3.36 /oras-u03
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
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.
-
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;
-
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>
-
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)
-
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>
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.
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 ANF com configuração NFS/ASM para um gerenciamento completo do ciclo de vida do clone.
git clone https://bitbucket.ngage.netapp.com/scm/ns-bb/na_oracle_clone_anf.git
|
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 . |
Onde encontrar informações adicionais
Para saber mais sobre as informações descritas neste documento, revise os seguintes documentos e/ou sites:
-
TR-5002: Redução de custos do Oracle Active Data Guard com o Azure NetApp Files
-
TR-4974: Oracle 19c em reinicialização autônoma no AWS FSx/EC2 com NFS/ASM
-
Azure NetApp Files
-
Conceitos e Administração do Oracle Data Guard